Bug 68297 - Mesa tries to detect AVX support and fails horribly
Summary: Mesa tries to detect AVX support and fails horribly
Status: RESOLVED INVALID
Alias: None
Product: Mesa
Classification: Unclassified
Component: Other (show other bugs)
Version: git
Hardware: x86-64 (AMD64) Linux (All)
: medium major
Assignee: mesa-dev
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-08-20 00:03 UTC by Pierre Bourdon
Modified: 2013-08-20 00:05 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments

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.