On 08/11/14 08:35, Siavash Eliasi wrote: > This will remove the need for unnecessary runtime checks for CPU features if > already supported by target CPU, resulting in smaller and less branchy code. > A comment I could not withheld based on your earlier post - "We require micro-benchmark for this code. It will take me hours to find why mesa is so slow now :P"
Ideally mesa should have an infrastructure/farm that handles regressions - be that performance or otherwise. Pretty sure some companies have such features but those seem to be hidden behind locked doors :'( But on a more mature note, currently only cpu_has_xmm (_tnl_generate_sse_emit) and cpu_has_sse4_1(vbo_get_minmax_index) are actually useful, with the former of questionable amount :P Can you confirm that it does not cause issues with "interesting" setups such as https://bugs.freedesktop.org/show_bug.cgi?id=71547 Thanks Emil > V2: > - Removed the SSSE3 related part for the not yet merged patch. > - Avoiding redefinition of macros. > --- > src/mesa/x86/common_x86_features.h | 26 ++++++++++++++++++++++++++ > 1 file changed, 26 insertions(+) > > diff --git a/src/mesa/x86/common_x86_features.h > b/src/mesa/x86/common_x86_features.h > index 66f2cf6..65634aa 100644 > --- a/src/mesa/x86/common_x86_features.h > +++ b/src/mesa/x86/common_x86_features.h > @@ -59,13 +59,39 @@ > #define X86_CPUEXT_3DNOW_EXT (1<<30) > #define X86_CPUEXT_3DNOW (1<<31) > > +#ifdef __MMX__ > +#define cpu_has_mmx 1 > +#else > #define cpu_has_mmx (_mesa_x86_cpu_features & X86_FEATURE_MMX) > +#endif > + > #define cpu_has_mmxext (_mesa_x86_cpu_features & > X86_FEATURE_MMXEXT) > + > +#ifdef __SSE__ > +#define cpu_has_xmm 1 > +#else > #define cpu_has_xmm (_mesa_x86_cpu_features & X86_FEATURE_XMM) > +#endif > + > +#ifdef __SSE2__ > +#define cpu_has_xmm2 1 > +#else > #define cpu_has_xmm2 (_mesa_x86_cpu_features & X86_FEATURE_XMM2) > +#endif > + > +#ifdef __3dNOW__ > +#define cpu_has_3dnow 1 > +#else > #define cpu_has_3dnow (_mesa_x86_cpu_features & > X86_FEATURE_3DNOW) > +#endif > + > #define cpu_has_3dnowext (_mesa_x86_cpu_features & X86_FEATURE_3DNOWEXT) > + > +#ifdef __SSE4_1__ > +#define cpu_has_sse4_1 1 > +#else > #define cpu_has_sse4_1 (_mesa_x86_cpu_features & > X86_FEATURE_SSE4_1) > +#endif > > #endif > > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev