General cleanups. Disable gl_katmai_project_vertices and

gl_katmai_project_clipped_vertices for now as they are broken.
This commit is contained in:
Gareth Hughes
2000-09-17 21:12:40 +00:00
parent 345a71a9cb
commit f3c399ec11

View File

@@ -1,4 +1,4 @@
/* $Id: 3dnow.c,v 1.6 2000/09/15 15:54:25 brianp Exp $ */ /* $Id: 3dnow.c,v 1.7 2000/09/17 21:12:40 gareth Exp $ */
/* /*
* Mesa 3-D graphics library * Mesa 3-D graphics library
@@ -49,133 +49,134 @@
#define XFORM_ARGS GLvector4f *to_vec, \ #define XFORM_ARGS GLvector4f *to_vec, \
const GLfloat m[16], \ const GLfloat m[16], \
const GLvector4f *from_vec, \ const GLvector4f *from_vec, \
const GLubyte *mask, \ const GLubyte *mask, \
const GLubyte flag const GLubyte flag
#define DECLARE_XFORM_GROUP(pfx, v, masked) \ #define DECLARE_XFORM_GROUP( pfx, v, masked ) \
extern void _ASMAPI gl##pfx##_transform_points##v##_general_##masked(XFORM_ARGS); \ extern void _ASMAPI gl_##pfx##_transform_points##v##_general_##masked(XFORM_ARGS); \
extern void _ASMAPI gl##pfx##_transform_points##v##_identity_##masked(XFORM_ARGS); \ extern void _ASMAPI gl_##pfx##_transform_points##v##_identity_##masked(XFORM_ARGS); \
extern void _ASMAPI gl##pfx##_transform_points##v##_3d_no_rot_##masked(XFORM_ARGS); \ extern void _ASMAPI gl_##pfx##_transform_points##v##_3d_no_rot_##masked(XFORM_ARGS); \
extern void _ASMAPI gl##pfx##_transform_points##v##_perspective_##masked(XFORM_ARGS);\ extern void _ASMAPI gl_##pfx##_transform_points##v##_perspective_##masked(XFORM_ARGS); \
extern void _ASMAPI gl##pfx##_transform_points##v##_2d_##masked(XFORM_ARGS); \ extern void _ASMAPI gl_##pfx##_transform_points##v##_2d_##masked(XFORM_ARGS); \
extern void _ASMAPI gl##pfx##_transform_points##v##_2d_no_rot_##masked(XFORM_ARGS); \ extern void _ASMAPI gl_##pfx##_transform_points##v##_2d_no_rot_##masked(XFORM_ARGS); \
extern void _ASMAPI gl##pfx##_transform_points##v##_3d_##masked(XFORM_ARGS); extern void _ASMAPI gl_##pfx##_transform_points##v##_3d_##masked(XFORM_ARGS);
#define ASSIGN_XFORM_GROUP( pfx, cma, vsize, masked ) \ #define ASSIGN_XFORM_GROUP( pfx, cma, vsize, masked ) \
gl_transform_tab[cma][vsize][MATRIX_GENERAL] \ gl_transform_tab[cma][vsize][MATRIX_GENERAL] = \
= gl##pfx##_transform_points##vsize##_general_##masked; \ gl_##pfx##_transform_points##vsize##_general_##masked; \
gl_transform_tab[cma][vsize][MATRIX_IDENTITY] \ gl_transform_tab[cma][vsize][MATRIX_IDENTITY] = \
= gl##pfx##_transform_points##vsize##_identity_##masked; \ gl_##pfx##_transform_points##vsize##_identity_##masked; \
gl_transform_tab[cma][vsize][MATRIX_3D_NO_ROT] \ gl_transform_tab[cma][vsize][MATRIX_3D_NO_ROT] = \
= gl##pfx##_transform_points##vsize##_3d_no_rot_##masked; \ gl_##pfx##_transform_points##vsize##_3d_no_rot_##masked; \
gl_transform_tab[cma][vsize][MATRIX_PERSPECTIVE] \ gl_transform_tab[cma][vsize][MATRIX_PERSPECTIVE] = \
= gl##pfx##_transform_points##vsize##_perspective_##masked; \ gl_##pfx##_transform_points##vsize##_perspective_##masked; \
gl_transform_tab[cma][vsize][MATRIX_2D] \ gl_transform_tab[cma][vsize][MATRIX_2D] = \
= gl##pfx##_transform_points##vsize##_2d_##masked; \ gl_##pfx##_transform_points##vsize##_2d_##masked; \
gl_transform_tab[cma][vsize][MATRIX_2D_NO_ROT] \ gl_transform_tab[cma][vsize][MATRIX_2D_NO_ROT] = \
= gl##pfx##_transform_points##vsize##_2d_no_rot_##masked; \ gl_##pfx##_transform_points##vsize##_2d_no_rot_##masked; \
gl_transform_tab[cma][vsize][MATRIX_3D] \ gl_transform_tab[cma][vsize][MATRIX_3D] = \
= gl##pfx##_transform_points##vsize##_3d_##masked; gl_##pfx##_transform_points##vsize##_3d_##masked;
#define NORM_ARGS const GLmatrix *mat, \ #define NORM_ARGS const GLmatrix *mat, \
GLfloat scale, \ GLfloat scale, \
const GLvector3f *in, \ const GLvector3f *in, \
const GLfloat *lengths, \ const GLfloat *lengths, \
const GLubyte mask[], \ const GLubyte mask[], \
GLvector3f *dest GLvector3f *dest
#define DECLARE_NORM_GROUP(pfx, masked) \ #define DECLARE_NORM_GROUP( pfx, masked ) \
extern void _ASMAPI gl##pfx##_rescale_normals_##masked## (NORM_ARGS); \ extern void _ASMAPI gl_##pfx##_rescale_normals_##masked(NORM_ARGS); \
extern void _ASMAPI gl##pfx##_normalize_normals_##masked## (NORM_ARGS); \ extern void _ASMAPI gl_##pfx##_normalize_normals_##masked(NORM_ARGS); \
extern void _ASMAPI gl##pfx##_transform_normals_##masked## (NORM_ARGS); \ extern void _ASMAPI gl_##pfx##_transform_normals_##masked(NORM_ARGS); \
extern void _ASMAPI gl##pfx##_transform_normals_no_rot_##masked## (NORM_ARGS); \ extern void _ASMAPI gl_##pfx##_transform_normals_no_rot_##masked(NORM_ARGS); \
extern void _ASMAPI gl##pfx##_transform_rescale_normals_##masked## (NORM_ARGS); \ extern void _ASMAPI gl_##pfx##_transform_rescale_normals_##masked(NORM_ARGS); \
extern void _ASMAPI gl##pfx##_transform_rescale_normals_no_rot_##masked## (NORM_ARGS); \ extern void _ASMAPI gl_##pfx##_transform_rescale_normals_no_rot_##masked(NORM_ARGS); \
extern void _ASMAPI gl##pfx##_transform_normalize_normals_##masked## (NORM_ARGS); \ extern void _ASMAPI gl_##pfx##_transform_normalize_normals_##masked(NORM_ARGS); \
extern void _ASMAPI gl##pfx##_transform_normalize_normals_no_rot_##masked## (NORM_ARGS); extern void _ASMAPI gl_##pfx##_transform_normalize_normals_no_rot_##masked(NORM_ARGS);
#define ASSIGN_NORM_GROUP( pfx, cma, masked ) \ #define ASSIGN_NORM_GROUP( pfx, cma, masked ) \
gl_normal_tab[NORM_RESCALE][cma] = \ gl_normal_tab[NORM_RESCALE][cma] = \
gl##pfx##_rescale_normals_##masked##; \ gl_##pfx##_rescale_normals_##masked; \
gl_normal_tab[NORM_NORMALIZE][cma] = \ gl_normal_tab[NORM_NORMALIZE][cma] = \
gl##pfx##_normalize_normals_##masked##; \ gl_##pfx##_normalize_normals_##masked; \
gl_normal_tab[NORM_TRANSFORM][cma] = \ gl_normal_tab[NORM_TRANSFORM][cma] = \
gl##pfx##_transform_normals_##masked##; \ gl_##pfx##_transform_normals_##masked; \
gl_normal_tab[NORM_TRANSFORM_NO_ROT][cma] = \ gl_normal_tab[NORM_TRANSFORM_NO_ROT][cma] = \
gl##pfx##_transform_normals_no_rot_##masked##; \ gl_##pfx##_transform_normals_no_rot_##masked; \
gl_normal_tab[NORM_TRANSFORM | NORM_RESCALE][cma] = \ gl_normal_tab[NORM_TRANSFORM | NORM_RESCALE][cma] = \
gl##pfx##_transform_rescale_normals_##masked##; \ gl_##pfx##_transform_rescale_normals_##masked; \
gl_normal_tab[NORM_TRANSFORM_NO_ROT | NORM_RESCALE][cma] = \ gl_normal_tab[NORM_TRANSFORM_NO_ROT | NORM_RESCALE][cma] = \
gl##pfx##_transform_rescale_normals_no_rot_##masked##; \ gl_##pfx##_transform_rescale_normals_no_rot_##masked; \
gl_normal_tab[NORM_TRANSFORM | NORM_NORMALIZE][cma] = \ gl_normal_tab[NORM_TRANSFORM | NORM_NORMALIZE][cma] = \
gl##pfx##_transform_normalize_normals_##masked##; \ gl_##pfx##_transform_normalize_normals_##masked; \
gl_normal_tab[NORM_TRANSFORM_NO_ROT | NORM_NORMALIZE][cma] = \ gl_normal_tab[NORM_TRANSFORM_NO_ROT | NORM_NORMALIZE][cma] = \
gl##pfx##_transform_normalize_normals_no_rot_##masked##; gl_##pfx##_transform_normalize_normals_no_rot_##masked;
extern void _ASMAPI gl_3dnow_project_vertices( GLfloat *first, extern void _ASMAPI gl_3dnow_project_vertices( GLfloat *first,
GLfloat *last,
const GLfloat *m,
GLuint stride );
extern void _ASMAPI gl_3dnow_project_clipped_vertices( GLfloat *first,
GLfloat *last, GLfloat *last,
const GLfloat *m, const GLfloat *m,
GLuint stride, GLuint stride );
const GLubyte *clipmask );
extern void _ASMAPI gl_3dnow_project_clipped_vertices( GLfloat *first,
GLfloat *last,
const GLfloat *m,
GLuint stride,
const GLubyte *clipmask );
extern void _ASMAPI gl_v16_3dnow_general_xform( GLfloat *first_vert, extern void _ASMAPI gl_v16_3dnow_general_xform( GLfloat *first_vert,
const GLfloat *m, const GLfloat *m,
const GLfloat *src, const GLfloat *src,
GLuint src_stride, GLuint src_stride,
GLuint count ); GLuint count );
DECLARE_XFORM_GROUP( _3dnow, 1, raw ) DECLARE_XFORM_GROUP( 3dnow, 1, raw )
DECLARE_XFORM_GROUP( _3dnow, 2, raw ) DECLARE_XFORM_GROUP( 3dnow, 2, raw )
DECLARE_XFORM_GROUP( _3dnow, 3, raw ) DECLARE_XFORM_GROUP( 3dnow, 3, raw )
DECLARE_XFORM_GROUP( _3dnow, 4, raw ) DECLARE_XFORM_GROUP( 3dnow, 4, raw )
DECLARE_XFORM_GROUP( _3dnow, 1, masked ) DECLARE_XFORM_GROUP( 3dnow, 1, masked )
DECLARE_XFORM_GROUP( _3dnow, 2, masked ) DECLARE_XFORM_GROUP( 3dnow, 2, masked )
DECLARE_XFORM_GROUP( _3dnow, 3, masked ) DECLARE_XFORM_GROUP( 3dnow, 3, masked )
DECLARE_XFORM_GROUP( _3dnow, 4, masked ) DECLARE_XFORM_GROUP( 3dnow, 4, masked )
DECLARE_NORM_GROUP( _3dnow, raw ) DECLARE_NORM_GROUP( 3dnow, raw )
/*DECLARE_NORM_GROUP( _3dnow, masked )*/ /*DECLARE_NORM_GROUP( 3dnow, masked )*/
void gl_init_3dnow_asm_transforms (void)
void gl_init_3dnow_asm_transforms( void )
{ {
ASSIGN_XFORM_GROUP( _3dnow, 0, 1, raw ) ASSIGN_XFORM_GROUP( 3dnow, 0, 1, raw );
ASSIGN_XFORM_GROUP( _3dnow, 0, 2, raw ) ASSIGN_XFORM_GROUP( 3dnow, 0, 2, raw );
ASSIGN_XFORM_GROUP( _3dnow, 0, 3, raw ) ASSIGN_XFORM_GROUP( 3dnow, 0, 3, raw );
ASSIGN_XFORM_GROUP( _3dnow, 0, 4, raw ) ASSIGN_XFORM_GROUP( 3dnow, 0, 4, raw );
ASSIGN_XFORM_GROUP( _3dnow, CULL_MASK_ACTIVE, 1, masked ) ASSIGN_XFORM_GROUP( 3dnow, CULL_MASK_ACTIVE, 1, masked );
ASSIGN_XFORM_GROUP( _3dnow, CULL_MASK_ACTIVE, 2, masked ) ASSIGN_XFORM_GROUP( 3dnow, CULL_MASK_ACTIVE, 2, masked );
ASSIGN_XFORM_GROUP( _3dnow, CULL_MASK_ACTIVE, 3, masked ) ASSIGN_XFORM_GROUP( 3dnow, CULL_MASK_ACTIVE, 3, masked );
ASSIGN_XFORM_GROUP( _3dnow, CULL_MASK_ACTIVE, 4, masked ) ASSIGN_XFORM_GROUP( 3dnow, CULL_MASK_ACTIVE, 4, masked );
ASSIGN_NORM_GROUP( _3dnow, 0, raw ) ASSIGN_NORM_GROUP( 3dnow, 0, raw );
/* ASSIGN_NORM_GROUP( _3dnow, CULL_MASK_ACTIVE, masked )*/ /* ASSIGN_NORM_GROUP( 3dnow, CULL_MASK_ACTIVE, masked ); */
#ifdef DEBUG #ifdef DEBUG
gl_test_all_transform_functions("3Dnow!"); gl_test_all_transform_functions( "3DNow!" );
gl_test_all_normal_transform_functions("3Dnow!"); gl_test_all_normal_transform_functions( "3DNow!" );
#endif #endif
/* Hook in some stuff for vertices.c. /* Hook in some stuff for vertices.c.
@@ -187,10 +188,10 @@ void gl_init_3dnow_asm_transforms (void)
#else #else
/* silence compiler warning */ /* silence compiler warning */
extern void _mesa_3dnow_dummy_function(void); extern void _mesa_3dnow_dummy_function( void );
void _mesa_3dnow_dummy_function(void)
void _mesa_3dnow_dummy_function( void )
{ {
} }