summaryrefslogtreecommitdiffstats
path: root/src/mesa/x86/x86.c
diff options
context:
space:
mode:
authorBrian Paul <[email protected]>2009-03-04 15:21:13 -0700
committerBrian Paul <[email protected]>2009-03-04 15:24:03 -0700
commitc751224b0acd457d99cead45616980fec7ef78f1 (patch)
tree5609f99505e60f3c8e98459d97ce54e0c8b87481 /src/mesa/x86/x86.c
parentf0c92d96568780d5a6c6b53845e9689893ce99e4 (diff)
mesa: refactor x86 code
Move _mesa_init_all_x86_transform_asm() into x86.c so that common_x86.c has no dependencies on the vertex transformation code. Plus some comments and clean-ups.
Diffstat (limited to 'src/mesa/x86/x86.c')
-rw-r--r--src/mesa/x86/x86.c50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/mesa/x86/x86.c b/src/mesa/x86/x86.c
index ce649f66b0b..c2df5e31e6e 100644
--- a/src/mesa/x86/x86.c
+++ b/src/mesa/x86/x86.c
@@ -34,6 +34,7 @@
#include "x86.h"
#include "common_x86_macros.h"
+#include "common_x86_asm.h"
#ifdef DEBUG_MATH
#include "math/m_debug.h"
@@ -93,3 +94,52 @@ void _mesa_init_x86_transform_asm( void )
#endif
}
+
+void _mesa_init_all_x86_transform_asm( void )
+{
+ _mesa_get_x86_features();
+
+#ifdef USE_X86_ASM
+ if ( _mesa_x86_cpu_features ) {
+ _mesa_init_x86_transform_asm();
+ }
+
+#ifdef USE_MMX_ASM
+ if ( cpu_has_mmx ) {
+ if ( _mesa_getenv( "MESA_NO_MMX" ) == 0 ) {
+ _mesa_debug(NULL, "MMX cpu detected.\n");
+ } else {
+ _mesa_x86_cpu_features &= ~(X86_FEATURE_MMX);
+ }
+ }
+#endif
+
+#ifdef USE_3DNOW_ASM
+ if ( cpu_has_3dnow ) {
+ if ( _mesa_getenv( "MESA_NO_3DNOW" ) == 0 ) {
+ _mesa_debug(NULL, "3DNow! cpu detected.\n");
+ _mesa_init_3dnow_transform_asm();
+ } else {
+ _mesa_x86_cpu_features &= ~(X86_FEATURE_3DNOW);
+ }
+ }
+#endif
+
+#ifdef USE_SSE_ASM
+ if ( cpu_has_xmm ) {
+ if ( _mesa_getenv( "MESA_NO_SSE" ) == 0 ) {
+ _mesa_debug(NULL, "SSE cpu detected.\n");
+ if ( _mesa_getenv( "MESA_FORCE_SSE" ) == 0 ) {
+ _mesa_check_os_sse_support();
+ }
+ if ( cpu_has_xmm ) {
+ _mesa_init_sse_transform_asm();
+ }
+ } else {
+ _mesa_debug(NULL, "SSE cpu detected, but switched off by user.\n");
+ _mesa_x86_cpu_features &= ~(X86_FEATURE_XMM);
+ }
+ }
+#endif
+#endif
+}