From: Maxence Le Doré <Maxence Le Doré> --- src/gallium/auxiliary/util/u_cpu_detect.c | 5 +++++ src/gallium/auxiliary/util/u_cpu_detect.h | 2 ++ 2 files changed, 7 insertions(+)
diff --git a/src/gallium/auxiliary/util/u_cpu_detect.c b/src/gallium/auxiliary/util/u_cpu_detect.c index d2d1313..19ad4fa 100644 --- a/src/gallium/auxiliary/util/u_cpu_detect.c +++ b/src/gallium/auxiliary/util/u_cpu_detect.c @@ -371,6 +371,9 @@ util_cpu_detect(void) ((xgetbv() & 6) == 6); // XMM & YMM util_cpu_caps.has_f16c = (regs2[2] >> 29) & 1; util_cpu_caps.has_mmx2 = util_cpu_caps.has_sse; /* SSE cpus supports mmxext too */ + + util_cpu_caps.has_fma3 = (regs2[2] >> 12) & 1; + util_cpu_caps.has_fma4 = (regs2[2] >> 16) & 1; #if defined(PIPE_ARCH_X86_64) util_cpu_caps.has_daz = 1; #else @@ -451,6 +454,8 @@ util_cpu_detect(void) debug_printf("util_cpu_caps.has_xop = %u\n", util_cpu_caps.has_xop); debug_printf("util_cpu_caps.has_altivec = %u\n", util_cpu_caps.has_altivec); debug_printf("util_cpu_caps.has_daz = %u\n", util_cpu_caps.has_daz); + debug_printf("util_cpu_caps.has_fma3 = %u\n", util_cpu_caps.has_fma3); + debug_printf("util_cpu_caps.has_fma4 = %u\n", util_cpu_caps.has_fma4); } #endif diff --git a/src/gallium/auxiliary/util/u_cpu_detect.h b/src/gallium/auxiliary/util/u_cpu_detect.h index 5ccfc93..6802e6a 100644 --- a/src/gallium/auxiliary/util/u_cpu_detect.h +++ b/src/gallium/auxiliary/util/u_cpu_detect.h @@ -71,6 +71,8 @@ struct util_cpu_caps { unsigned has_xop:1; unsigned has_altivec:1; unsigned has_daz:1; + unsigned has_fma3:1; + unsigned has_fma4:1; }; extern struct util_cpu_caps -- 1.8.5.2 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev