void _mesa_init_sse_transform_asm( void ) { #ifdef USE_SSE_ASM ASSIGN_XFORM_GROUP( sse, 2 ); ASSIGN_XFORM_GROUP( sse, 3 ); #if 1 /* TODO: Finish these off. */ _mesa_transform_tab[4][MATRIX_GENERAL] = _mesa_sse_transform_points4_general; _mesa_transform_tab[4][MATRIX_3D] = _mesa_sse_transform_points4_3d; _mesa_transform_tab[4][MATRIX_IDENTITY] = _mesa_sse_transform_points4_identity; _mesa_normal_tab[NORM_TRANSFORM_NO_ROT] = _mesa_sse_transform_normals_no_rot; _mesa_normal_tab[NORM_TRANSFORM | NORM_RESCALE] = _mesa_sse_transform_rescale_normals; _mesa_normal_tab[NORM_TRANSFORM_NO_ROT | NORM_RESCALE] = _mesa_sse_transform_rescale_normals_no_rot; #else ASSIGN_XFORM_GROUP( sse, 4 ); ASSIGN_NORM_GROUP( sse ); #endif #ifdef DEBUG _math_test_all_transform_functions( "SSE" ); _math_test_all_normal_transform_functions( "SSE" ); #endif #endif }
void _mesa_init_all_sparc_transform_asm(void) { ASSIGN_XFORM_GROUP(sparc, 1) ASSIGN_XFORM_GROUP(sparc, 2) ASSIGN_XFORM_GROUP(sparc, 3) ASSIGN_XFORM_GROUP(sparc, 4) _mesa_clip_tab[4] = _mesa_sparc_cliptest_points4; _mesa_clip_np_tab[4] = _mesa_sparc_cliptest_points4_np; _mesa_normal_tab[NORM_TRANSFORM | NORM_NORMALIZE] = _mesa_sparc_transform_normalize_normals; _mesa_normal_tab[NORM_TRANSFORM_NO_ROT | NORM_NORMALIZE] = _mesa_sparc_transform_normalize_normals_no_rot; _mesa_normal_tab[NORM_TRANSFORM_NO_ROT | NORM_RESCALE] = _mesa_sparc_transform_rescale_normals_no_rot; _mesa_normal_tab[NORM_TRANSFORM | NORM_RESCALE] = _mesa_sparc_transform_rescale_normals; _mesa_normal_tab[NORM_TRANSFORM_NO_ROT] = _mesa_sparc_transform_normals_no_rot; _mesa_normal_tab[NORM_TRANSFORM] = _mesa_sparc_transform_normals; _mesa_normal_tab[NORM_NORMALIZE] = _mesa_sparc_normalize_normals; _mesa_normal_tab[NORM_RESCALE] = _mesa_sparc_rescale_normals; #ifdef DEBUG_MATH _math_test_all_transform_functions("sparc"); _math_test_all_cliptest_functions("sparc"); _math_test_all_normal_transform_functions("sparc"); #endif }
void _mesa_init_3dnow_transform_asm( void ) { #ifdef USE_3DNOW_ASM ASSIGN_XFORM_GROUP( 3dnow, 2 ); ASSIGN_XFORM_GROUP( 3dnow, 3 ); ASSIGN_XFORM_GROUP( 3dnow, 4 ); #ifdef DEBUG_MATH _math_test_all_transform_functions( "3DNow!" ); _math_test_all_normal_transform_functions( "3DNow!" ); #endif #endif }
static void _mesa_init_x86_transform_asm( void ) { ASSIGN_XFORM_GROUP( x86, 2 ); ASSIGN_XFORM_GROUP( x86, 3 ); ASSIGN_XFORM_GROUP( x86, 4 ); _mesa_clip_tab[4] = _mesa_x86_cliptest_points4; _mesa_clip_np_tab[4] = _mesa_x86_cliptest_points4_np; #ifdef DEBUG_MATH _math_test_all_transform_functions( "x86" ); _math_test_all_cliptest_functions( "x86" ); #endif }
void _mesa_init_3dnow_transform_asm( void ) { #ifdef USE_3DNOW_ASM ASSIGN_XFORM_GROUP( 3dnow, 2 ); ASSIGN_XFORM_GROUP( 3dnow, 3 ); ASSIGN_XFORM_GROUP( 3dnow, 4 ); /* There's a bug somewhere in the 3dnow_normal.S file that causes * bad shading. Disable for now. ASSIGN_NORM_GROUP( 3dnow ); */ #ifdef DEBUG_MATH _math_test_all_transform_functions( "3DNow!" ); _math_test_all_normal_transform_functions( "3DNow!" ); #endif #endif }
void _mesa_init_all_x86_64_transform_asm(void) { #ifdef USE_X86_64_ASM if ( _mesa_getenv( "MESA_NO_ASM" ) ) { return; } message("Initializing x86-64 optimizations\n"); ASSIGN_XFORM_GROUP( x86_64, 4 ); /* _mesa_transform_tab[4][MATRIX_GENERAL] = _mesa_x86_64_transform_points4_general; _mesa_transform_tab[4][MATRIX_IDENTITY] = _mesa_x86_64_transform_points4_identity; _mesa_transform_tab[4][MATRIX_3D] = _mesa_x86_64_transform_points4_3d; _mesa_transform_tab[4][MATRIX_3D_NO_ROT] = _mesa_x86_64_transform_points4_3d_no_rot; _mesa_transform_tab[4][MATRIX_PERSPECTIVE] = _mesa_x86_64_transform_points4_perspective; _mesa_transform_tab[4][MATRIX_2D_NO_ROT] = _mesa_x86_64_transform_points4_2d_no_rot; _mesa_transform_tab[4][MATRIX_2D] = _mesa_x86_64_transform_points4_2d; */ #ifdef DEBUG_MATH _math_test_all_transform_functions("x86_64"); _math_test_all_cliptest_functions("x86_64"); _math_test_all_normal_transform_functions("x86_64"); #endif #endif }