Bug 68297

Summary: Mesa tries to detect AVX support and fails horribly
Product: Mesa Reporter: Pierre Bourdon <delroth>
Component: OtherAssignee: mesa-dev
Status: RESOLVED INVALID QA Contact:
Severity: major    
Priority: medium    
Version: git   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description Pierre Bourdon 2013-08-20 00:03:23 UTC
src/gallium/auxiliary/util/u_cpu_detect.c:         util_cpu_caps.has_avx    = ((regs2[2] >> 28) & 1) && // AVX

This is wrong. To check for AVX support, you need to:
1. Check if the AVX bit is set in cpuid (DONE)
2. Check if the XSAVE bit is set in cpuid (NOT DONE)
3. Check if xgetbv with ecx=0 & XFEATURE_ENABLED_MASK == XFEATURE_ENABLED_MASK (NOT DONE)

See, for example:
https://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86Subtarget.cpp?r1=180991&r2=180990&pathrev=180991
https://code.google.com/p/dolphin-emu/source/detail?r=377202b9f6154ae56c5b2f0a45e235ceaeb6da9c

Intel have some reference material about that but software.intel.com seems to be down at the moment.

When trying to run llvmpipe on a machine with hardware AVX support but no kernel support for it, it currently SIGILLs.
Comment 1 Pierre Bourdon 2013-08-20 00:05:23 UTC
Nevermind, I was using a non Git version, looking at a recent Git checkout it seems to have been fixed on Jul 23.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.