History log of /external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
b9578b683dd43c81fe8cd9562c2bef2e20a7ef98 26-May-2016 Tim Rowley <timothy.o.rowley@intel.com> gallium: detect avx512 cpu features

v3: fix check for xmm/ymm test
v2: style code, add avx512 to cpu dump

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
9e8edfa19034ae69139ef10b88f958b4f58d57ea 24-May-2016 Jose Fonseca <jfonseca@vmware.com> util,gallivm: Explicitly enable/disable fma attribute.

As suggested by Roland Scheidegger.

Use the same logic as f16c, since fma requires VEX encoding.

But disable FMA on LLVM 3.3 without MCJIT.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
ebbe31d57c195245b2b556c14291cafccc835738 29-Apr-2016 Jan Vesely <jan.vesely@rutgers.edu> gallium,utils: Fix trivial sign compare warnings

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Reviewed-by: Jakob Sinclair <sinclair.jakob@openmailbox.org>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
0d4898ae8068d3984242775a6fcc87f280c0ac5a 11-Feb-2016 Jose Fonseca <jfonseca@vmware.com> include,gallium: Remove pre-MSVC 2013 compatibility.

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
a48afb92ffda6e149c553ec82a05fee9a17441f8 17-Jan-2016 François Tigeot <ftigeot@wolfpond.org> gallium: Add DragonFly support

Cc: mesa-stable@lists.freedesktop.org
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
56aff6bb4eafe35ba301f5d60027377abc4cfd9f 02-Dec-2015 Jose Fonseca <jfonseca@vmware.com> Remove Sun CC specific code.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Acked-by: Alan Coopersmith <alan.coopersmith@oracle.com>
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
a2a1a5805fd617e7f3cc8be44dd79b50da07ebb9 21-Jul-2015 Ilia Mirkin <imirkin@alum.mit.edu> gallium: replace INLINE with inline

Generated by running:
git grep -l INLINE src/gallium/ | xargs sed -i 's/\bINLINE\b/inline/g'
git grep -l INLINE src/mesa/state_tracker/ | xargs sed -i 's/\bINLINE\b/inline/g'
git checkout src/gallium/state_trackers/clover/Doxyfile

and manual edits to
src/gallium/include/pipe/p_compiler.h
src/gallium/README.portability

to remove mentions of the inline define.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Acked-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
5fea39ace311723dab53460ae7b51b80746e0d3f 31-Dec-2014 Leonid Shatz <leonid.shatz@ravellosystems.com> gallium/util: make sure cache line size is not zero

The "normal" detection (querying clflush size) already made sure it is
non-zero, however another method did not. This lead to crashes if this
value happened to be zero (apparently can happen in virtualized environments
at least).
This fixes https://bugs.freedesktop.org/show_bug.cgi?id=87913

Cc: "10.4" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
b59c7ed0ab1ac5b6d9f8d409f1a90401ab7775b6 31-Dec-2014 Roland Scheidegger <sroland@vmware.com> gallium/util: fix crash with daz detection on x86

The code used PIPE_ALIGN_VAR for the variable used by fxsave, however this
does not work if the stack isn't aligned. Hence use PIPE_ALIGN_STACK function
decoration to fix the segfault which can happen if stack alignment is only
4 bytes.
This fixes https://bugs.freedesktop.org/show_bug.cgi?id=87658.

Cc: "10.4" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
f2c39dd0e19e83dac922878b00a4b871c839b609 19-Sep-2014 Roland Scheidegger <sroland@vmware.com> util: don't try to emit half-float intrinsics if avx isn't available

These instructions only have vex encodings, thus they can't be used without
avx. (Technically, one can still use avx-128 if avx isn't available because
the environment doesn't store the ymm registers, however I don't think llvm
can.)

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
d93e23ba25cbfd8f77a4b3a113ca7ed3dece1e68 10-Sep-2013 Vinson Lee <vlee@freedesktop.org> util: Fix unmatched parenthesis.

Fixes MSVC build error introduced with commit
923d3467147dd301d94ed3e6b41295fb2bcd6f47.

src\gallium\auxiliary\util\u_cpu_detect.c(286) : fatal error C1012: unmatched parenthesis : missing '('

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
923d3467147dd301d94ed3e6b41295fb2bcd6f47 10-Sep-2013 Brian Paul <brianp@vmware.com> util: don't use _fxsave() with MSVC 2010 or older

And update _MSC_VER comments in p_config.h

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
4b45b61fef6e0f3325888c190e6e557d8948b31a 20-Aug-2013 Roland Scheidegger <sroland@vmware.com> util: add avx2 and xop detection to cpu detection code

Going to need this soon (not going to bother with avx2 intrinsics at this time
but don't want to do workarounds for true vector shifts if llvm itself can use
them just fine and won't need the gazillion instruction emulation).
Not really tested other than my cpu returns 0 for these features...
(I have no idea if llvm actually would emit avx2/xop instructions neither...)

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
836098f6b2dd275a2f557780d094cde13471f49d 09-Aug-2013 Roland Scheidegger <sroland@vmware.com> util: (trivial) fix asm input/output list for fxsave

Otherwise gcc might do very unsafe optimizations, spotted by Uros Bizjak.
Hopefully this time it's finally right?
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
8f40fa0e7f47093d6e93ca4dd12569a6f948dae6 09-Aug-2013 Dieter Nützel <dieter@nuetzel-hh.de> util: (trivial) fix more compile errors in u_cpu_detect (gcc/x86 this time).

Oops. Should fix https://bugs.freedesktop.org/show_bug.cgi?id=67921
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
43076a55c2c914a619b8b3a3f93e15a7eee6d2ad 08-Aug-2013 Roland Scheidegger <sroland@vmware.com> util: (trivial) fix compile error with MSVC on x86
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
883987503fc79691398eb024f37480ff083805a3 06-Aug-2013 Roland Scheidegger <sroland@vmware.com> util: try much harder to set DAZ flag

While so far this only causes some harmless test failures, there's lots more
cpus with DAZ. All 64bit capable ones can do it (particularly relevant for
AMD cpus as they supported sse3 very very late) but if really necessary we
can check support for that for real with some more magic.
(In fact just about ANY cpu with sse2 can support DAZ, I believe the only
exception are first gen P4 (Willamette) and from those only early steppings
which can't do it it's almost like intel forgot to add it... - a real pity
though docs say you can't just try to set it as they will throw a GPF.)
While this was meant to address https://bugs.freedesktop.org/show_bug.cgi?id=67672
it does not fix it. Most likely the tests need fixing as I don't think
there's any guarantee about denorm handling in the reference math library
functions if the flags aren't set to standard values. Nevertheless enabling
DAZ on all cpus which can do it should be the right thing to do.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
0acf3a8407fbeaa9d61731ce83fbe6de529e303c 23-Jul-2013 Andre Heider <a.heider@gmail.com> gallium/util: Fix detection of AVX cpu caps

For AVX it's not sufficient to only rely on the cpuid flags. If the CPU
supports these extensions, but the OS doesn't, issuing these insns will
trigger an undefined opcode exception.

In addition to the AVX cpuid bit we also need to:
* test cpuid for OSXSAVE support
* XGETBV to check if the OS saves/restores AVX regs on context switches

See "Detecting Availability and Support" at
http://software.intel.com/en-us/articles/introduction-to-intel-advanced-vector-extensions

Signed-off-by: Andre Heider <a.heider@gmail.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Reviewed-by: José Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
ffebefa11424411d7e54a3a1223fe87a2de6e596 19-Jun-2013 Roland Scheidegger <sroland@vmware.com> util: (trivial) add has_popcnt field

Not used yet but there's a couple of places in llvmpipe which should use this
(occlusion count is currently very inefficent if there's no cpu popcnt
instruction).
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
337f21bc356a89a9c755aebabb64ba381a59e39b 05-Jun-2013 Richard Sandiford <rsandifo@linux.vnet.ibm.com> util: Use sizeof(void *) rather than 0 as the fallback cache line size

Without this, llvmpipe ends up giving a zero size to all uncompressed textures
on non-x86 systems, since align() cannot handle a 0 alignment.

Reviewed-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Richard Sandiford <rsandifo@linux.vnet.ibm.com>
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
067a0ae42017f327edce7634890e699b4ec8492c 03-Apr-2013 Roland Scheidegger <sroland@vmware.com> gallivm: use f16c hw support for float->half and half->float conversion

Should be way faster of course on cpus supporting this (includes AMD
Bulldozer and Jaguar cores, Intel Ivy Bridge and up (except budget models)).
Passes piglit fbo-blending-formats GL_ARB_texture_float -auto on Ivy Bridge.

Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
ba588dd45d584db8e2e090b4bce342128e167aec 07-Mar-2013 Maxence Le Doré <maxence.ledore@gmail.com> gallium/util: Correct shift value for TSC feature detection.

Reviewed-by: Matt Turner <mattst88@gmail.com>
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
7eb504019731368fd55f01e0264b195d4f99ae93 31-Aug-2012 José Fonseca <jfonseca@vmware.com> gallivm,llvmpipe: Use 4-wide vectors on AMD Bulldozer.

8-wide vectors is slower.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
19b3910bd5dc99c72aa9771d8715dd67897a0810 01-Sep-2012 Vinson Lee <vlee@freedesktop.org> util: Add cpuid for Solaris Studio.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
ef2c80f5064b2d1830cea5bbcacde850138d54c4 07-Apr-2011 Brian Paul <brianp@vmware.com> util: add cpu detection for sse 4.2 and avx
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
1e105741f1e0ae4946febb41c844ed5741a54ec1 07-Apr-2011 Brian Paul <brianp@vmware.com> util: simplify bit shifting in util_cpu_detect()
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
3bdbccef2adfc699a737d7d25911004938bbbfcc 22-Aug-2010 Vinson Lee <vlee@vmware.com> util: Use #ifdef instead of #if.

This is a typo fix of earlier commit 0f3b3751b8643352dcc242567b3696bd1505df1d.
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
0f3b3751b8643352dcc242567b3696bd1505df1d 22-Aug-2010 Vinson Lee <vlee@vmware.com> util: Define dump_cpu only for DEBUG builds.

dump_cpu is used only when DEBUG is defined.

Fixes the following GCC warning on builds without DEBUG defined.
util/u_cpu_detect.c:76: warning: 'debug_get_option_dump_cpu' defined but not used
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
7a40d15e6c6b8ebc971be0e926c7027a85db96a0 21-Aug-2010 José Fonseca <jfonseca@vmware.com> util: Remove the x86 exception handlers.

Unused now that check_os_katmai_support was removed.
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
15a3b42e135a3a2cb463ec3cff80a55dd8528051 17-Aug-2010 Vinson Lee <vlee@vmware.com> util: Remove check_os_katmai_support.

check_os_katmai_support checks that the operating system running on a
SSE-capable processor supports SSE. This is necessary for unpatched
2.2.x and earlier kernels. 2.4.x and later kernels support SSE.

check_os_katmai_support will disable SSE capabilities for 32-bit x86
operating systems for which there is no code path. Currently, this
function handles Linux, Windows, and several BSDs. Mac OS, Cygwin, and
Solaris are several operating systems with no code paths.

Rather than add code for the unhandled operating systems, remove this
function altogether. This will fix SSE detection on all recent 32-bit
x86 operating systems. This completely breaks functionality on unpatched
2.2.x and earlier kernels, although there are likely no Gallium3D users
on such operating systems.
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
7f5202be63c6dc639e57d11ef8253e79dd349f59 15-Aug-2010 Jakob Bornecrantz <wallbraker@gmail.com> gallium: Make printing info on debug builds default off

This commit silences the printing off most of the debug information
when running debug builds. The big culprits are: the tgsi sanity checker
that gets run on all shaders on debug; all the options; and
finaly the cpu caps printer.
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
923256626931c057d1a7c20d8900768b0c1faea9 13-Aug-2010 Luca Barbieri <luca@luca-barbieri.com> u_cpu_detect: remove arch and little_endian

This logic duplicates the one in p_config.h, so remove it and adjust
the only two places that were using it.
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
14e9fbee1cef281c6849a5f2a6d2cc66bfd4b3fd 06-Aug-2010 Brian Paul <brianp@vmware.com> gallium: remove stray semicolons
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
4d65055b1f2023f95a4f9c2bfab55a67ef72739d 06-Aug-2010 Jakob Bornecrantz <jakob@vmware.com> util: Add option to not dump cpu caps
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
b17ee335e3398cd1bbd26f5411e7ee6fb6839286 27-Jul-2010 Brian Paul <brianp@vmware.com> util: fix unused function warning on non-x86
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
3cef6c42bc0966ee988c0e67935053e8ed93ab5e 24-Jul-2010 nobled <nobled@dreamwidth.org> util: fix CPU detection on OS X

s/PIPE_OS_DARWIN/PIPE_OS_APPLE, since there is no PIPE_OS_DARWIN.

Acked-by: Vinson Lee <vlee@vmware.com>
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
c4c11eb456b773480d37ac34f98b9b44ae7c514a 18-Nov-2009 Brian Paul <brianp@vmware.com> gallium/util: replace //-style comments
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
5eba607db6c50181bb12be5aee3735aafb40372e 27-Oct-2009 José Fonseca <jfonseca@vmware.com> util: Drop return value from cpuid().
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
0426227b68be9ad4ab7ed3591e77f31f3e21fbec 27-Oct-2009 José Fonseca <jfonseca@vmware.com> util: Fix cpuid on MSVC.
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
4797ce0d194720369b46d51733536d02b4a14473 22-Oct-2009 José Fonseca <jfonseca@vmware.com> util: Set cpu endianness too.
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
b2b239691dfe593676aaee0cd990fa76354ac96f 18-Oct-2009 Marc Dietrich <marvin24@gmx.de> gallium/util: fix cpu detection on ppc

As we are compiling with -D_BSD_SOURCE, sigjmp_buf and siglongjmp
should be replaced by the non-sig functions (see man 3 setjmp).
Tested on linux/cell.
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
3ce3c03257bccc5f9e8a6caf0f39565a87856eaf 14-Oct-2009 José Fonseca <jfonseca@vmware.com> util: Fix cpu detection on Windows. Cleanup.
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
c595dea23c6e77dc5d44a7f4b86916b72e09f970 09-Oct-2009 José Fonseca <jfonseca@vmware.com> util: Force ESI register for cpuid's ebx result.

Fixes a segfault and better code. Unfortunately using an arbitrary
register ("=r") causes the gcc to abort when the code is optimized saying
it can't satisfy the constraint. Setting seems to do the trick.
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
6971be783b970f882e873fa40e2dccde4137201f 05-Oct-2009 José Fonseca <jfonseca@vmware.com> util: Improve the cpuid assembly.

No need to save ebx on 64bit. Use just xchgl. Refer to gcc's cpuid.h header.

Thanks to Uros Bizjak for pointing this out.
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
7a7dfb09aadf0509db4c1e2752fff5b75c59406b 04-Oct-2009 José Fonseca <jfonseca@vmware.com> util: Fix cpuid invocation for x86_64.
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
a81fb2a0d2c9a94fa362705edd1281fa7699d093 29-Sep-2009 José Fonseca <jfonseca@vmware.com> util: Cleanup u_cpu_detect, build. Support X86_64 and detect SSE4.1 too.

I was waiting for the need to use this code to arise, and it finally came.

I've tested building this on Linux and Windows, both x86 and x64_64. But
it might break other platforms. Please bear with me and help me fix it.

Many thanks to Dennis Smit who submitted this, and Eric Anholt whose
work this was based on.
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c
01bd21eef8f572944c09771f44e3006e2991280e 10-Mar-2008 José Fonseca <jrfonseca@tungstengraphics.com> gallium: Import Dennis Smit cpu detection code.

It still needs a slight code massasing to integrate with the rest of
gallium (namely mapping the OS_* ARCH_* defines), but I'm commiting anyway
so that it is available to be used when somebody needs it.
/external/mesa3d/src/gallium/auxiliary/util/u_cpu_detect.c