X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fx86%2Fx86_xform.c;h=007cd704de83b01493f0d6f232c4ba27eb87546c;hb=3c9dc2d31b80fc73bffa1f40a91443a53229c8e2;hp=b2f54b2ce67b45c0aced860fbe3efcd5c09ac1ea;hpb=81e366c65949292ab9a70e518ab5487e639db255;p=mesa.git diff --git a/src/mesa/x86/x86_xform.c b/src/mesa/x86/x86_xform.c index b2f54b2ce67..007cd704de8 100644 --- a/src/mesa/x86/x86_xform.c +++ b/src/mesa/x86/x86_xform.c @@ -1,7 +1,6 @@ /* * Mesa 3-D graphics library - * Version: 3.5 * * Copyright (C) 1999-2001 Brian Paul All Rights Reserved. * @@ -18,9 +17,10 @@ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. */ /* @@ -30,12 +30,19 @@ #include "main/glheader.h" #include "main/context.h" #include "math/m_xform.h" -#include "tnl/t_context.h" -#include "x86.h" #include "x86_xform.h" #include "common_x86_asm.h" +#ifdef USE_X86_ASM +#ifdef USE_3DNOW_ASM +#include "3dnow.h" +#endif +#ifdef USE_SSE_ASM +#include "sse.h" +#endif +#endif + #ifdef DEBUG_MATH #include "math/m_debug.h" #endif @@ -52,21 +59,24 @@ _mesa_x86_cliptest_points4( GLvector4f *clip_vec, GLvector4f *proj_vec, GLubyte clipMask[], GLubyte *orMask, - GLubyte *andMask ); + GLubyte *andMask, + GLboolean viewport_z_clip ); extern GLvector4f * _ASMAPI _mesa_x86_cliptest_points4_np( GLvector4f *clip_vec, GLvector4f *proj_vec, GLubyte clipMask[], GLubyte *orMask, - GLubyte *andMask ); + GLubyte *andMask, + GLboolean viewport_z_clip ); extern void _ASMAPI _mesa_v16_x86_cliptest_points4( GLfloat *first_vert, GLfloat *last_vert, GLubyte *or_mask, GLubyte *and_mask, - GLubyte *clip_mask ); + GLubyte *clip_mask, + GLboolean viewport_z_clip ); extern void _ASMAPI _mesa_v16_x86_general_xform( GLfloat *dest, @@ -77,9 +87,9 @@ _mesa_v16_x86_general_xform( GLfloat *dest, #endif -void _mesa_init_x86_transform_asm( void ) -{ #ifdef USE_X86_ASM +static void _mesa_init_x86_transform_asm( void ) +{ ASSIGN_XFORM_GROUP( x86, 2 ); ASSIGN_XFORM_GROUP( x86, 3 ); ASSIGN_XFORM_GROUP( x86, 4 ); @@ -91,8 +101,8 @@ void _mesa_init_x86_transform_asm( void ) _math_test_all_transform_functions( "x86" ); _math_test_all_cliptest_functions( "x86" ); #endif -#endif } +#endif void _mesa_init_all_x86_transform_asm( void ) @@ -104,42 +114,13 @@ void _mesa_init_all_x86_transform_asm( void ) _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); - } + if (cpu_has_3dnow) { + _mesa_init_3dnow_transform_asm(); } -#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); - } + _mesa_init_sse_transform_asm(); } -#endif + #endif }