diff options
-rw-r--r-- | src/mesa/x86/common_x86.c | 6 | ||||
-rw-r--r-- | src/mesa/x86/sse.c | 13 |
2 files changed, 11 insertions, 8 deletions
diff --git a/src/mesa/x86/common_x86.c b/src/mesa/x86/common_x86.c index 6afc164566..2fab022cdf 100644 --- a/src/mesa/x86/common_x86.c +++ b/src/mesa/x86/common_x86.c @@ -354,13 +354,11 @@ void _mesa_init_all_x86_transform_asm( void ) check_os_sse_support(); } if ( cpu_has_xmm ) { - /* SSE segfaults when running conform, disabled for now - KW. - */ - if ( 0 && getenv( "MESA_NO_SSE" ) == 0 ) { + if (getenv( "MESA_NO_SSE" ) == 0 ) { message( "SSE cpu detected.\n" ); _mesa_init_sse_transform_asm(); } else { -/* message( "SSE cpu detected, but switched off by user.\n" ); */ + message( "SSE cpu detected, but switched off by user.\n" ); _mesa_x86_cpu_features &= ~(X86_FEATURE_XMM); } } diff --git a/src/mesa/x86/sse.c b/src/mesa/x86/sse.c index 1271f88dcd..45852c4e1c 100644 --- a/src/mesa/x86/sse.c +++ b/src/mesa/x86/sse.c @@ -1,9 +1,8 @@ - /* * Mesa 3-D graphics library - * Version: 3.5 + * Version: 6.0 * - * Copyright (C) 1999-2001 Brian Paul All Rights Reserved. + * Copyright (C) 1999-2004 Brian Paul All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,7 +52,10 @@ extern void _ASMAPI _mesa_sse_transform_rescale_normals_no_rot( NORM_ARGS ); extern void _ASMAPI _mesa_sse_transform_points4_general( XFORM_ARGS ); extern void _ASMAPI _mesa_sse_transform_points4_3d( XFORM_ARGS ); +/* XXX this function segfaults, see below */ extern void _ASMAPI _mesa_sse_transform_points4_identity( XFORM_ARGS ); +/* XXX this one works, see below */ +extern void _ASMAPI _mesa_x86_transform_points4_identity( XFORM_ARGS ); #else DECLARE_NORM_GROUP( sse ) #endif @@ -94,8 +96,11 @@ void _mesa_init_sse_transform_asm( void ) _mesa_sse_transform_points4_general; _mesa_transform_tab[4][MATRIX_3D] = _mesa_sse_transform_points4_3d; + /* XXX NOTE: _mesa_sse_transform_points4_identity segfaults with the + conformance tests, so use the x86 version. + */ _mesa_transform_tab[4][MATRIX_IDENTITY] = - _mesa_sse_transform_points4_identity; + _mesa_x86_transform_points4_identity;/*_mesa_sse_transform_points4_identity;*/ _mesa_normal_tab[NORM_TRANSFORM_NO_ROT] = _mesa_sse_transform_normals_no_rot; |