Example #1
0
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
}
Example #2
0
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
}
Example #3
0
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
}
Example #4
0
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
}
Example #5
0
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
}