[Mesa-dev] [PATCH] gallium/util: fix nondeterministic avx512 detection

Roland Scheidegger sroland at vmware.com
Wed Jul 19 20:19:14 UTC 2017


Ahh I thought swr already used that. But if not it's probably not
necessary for stable.

Roland

Am 19.07.2017 um 22:15 schrieb Rowley, Timothy O:
> There weren’t any direct users of the avx512 features yet, but probably worth proposing for stable pickup.
> 
> Thanks.
> 
> -Tim
> 
>> On Jul 19, 2017, at 2:40 PM, Roland Scheidegger <sroland at vmware.com> wrote:
>>
>> 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