[Mesa-dev] [PATCH] gallium/util: fix nondeterministic avx512 detection
Roland Scheidegger
sroland at vmware.com
Wed Jul 19 19:40:36 UTC 2017
Makes sense to me.
Probably should go into stable?
Reviewed-by: Roland Scheidegger <sroland at vmware.com>
Am 19.07.2017 um 21:29 schrieb Tim Rowley:
> cpuid.7 requires cx=0 to select the extended feature leaf.
>
> avx512 detection was using the non-indexed cpuid resulting
> in random non-detection of avx512.
> ---
> src/gallium/auxiliary/util/u_cpu_detect.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/gallium/auxiliary/util/u_cpu_detect.c b/src/gallium/auxiliary/util/u_cpu_detect.c
> index 3d6ccb5822..4e71041bc9 100644
> --- a/src/gallium/auxiliary/util/u_cpu_detect.c
> +++ b/src/gallium/auxiliary/util/u_cpu_detect.c
> @@ -438,7 +438,7 @@ util_cpu_detect(void)
> (xgetbv() & (0x7 << 5)) && // OPMASK: upper-256 enabled by OS
> ((xgetbv() & 6) == 6)) { // XMM/YMM enabled by OS
> uint32_t regs3[4];
> - cpuid(0x00000007, regs3);
> + cpuid_count(0x00000007, 0x00000000, regs3);
> util_cpu_caps.has_avx512f = (regs3[1] >> 16) & 1;
> util_cpu_caps.has_avx512dq = (regs3[1] >> 17) & 1;
> util_cpu_caps.has_avx512ifma = (regs3[1] >> 21) & 1;
>
More information about the mesa-dev
mailing list