mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 05:18:08 +02:00
remove vertex_stride_shift, fix up code to not need it
This commit is contained in:
parent
da8337ed5e
commit
7b6ceb5b12
4 changed files with 18 additions and 45 deletions
|
|
@ -355,7 +355,6 @@ static void TAG(interp)( GLcontext *ctx,
|
|||
LOCALVARS
|
||||
struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb;
|
||||
GLubyte *ddverts = GET_VERTEX_STORE();
|
||||
/* GLuint shift = GET_VERTEX_STRIDE_SHIFT();*/
|
||||
GLuint size = GET_VERTEX_SIZE();
|
||||
const GLfloat *dstclip = VB->ClipPtr->data[edst];
|
||||
GLfloat w;
|
||||
|
|
@ -540,9 +539,9 @@ static void TAG(copy_pv)( GLcontext *ctx, GLuint edst, GLuint esrc )
|
|||
#if DO_SPEC || DO_FOG || DO_RGBA
|
||||
LOCALVARS
|
||||
GLubyte *verts = GET_VERTEX_STORE();
|
||||
GLuint shift = GET_VERTEX_STRIDE_SHIFT();
|
||||
GLuint *dst = (GLuint *)(verts + (edst << shift));
|
||||
GLuint *src = (GLuint *)(verts + (esrc << shift));
|
||||
GLuint size = GET_VERTEX_SIZE();
|
||||
GLuint *dst = (GLuint *)(verts + (edst * size));
|
||||
GLuint *src = (GLuint *)(verts + (esrc * size));
|
||||
#endif
|
||||
|
||||
#if DO_SPEC || DO_FOG
|
||||
|
|
@ -565,30 +564,20 @@ static void TAG(init)( void )
|
|||
|
||||
setup_tab[IND].copy_pv = TAG(copy_pv);
|
||||
|
||||
/* vertex_stride_shift must be the same because each
|
||||
* vertex is aligned with the end of the structure and
|
||||
* not the beginning
|
||||
*/
|
||||
#if DO_TEX1
|
||||
setup_tab[IND].vertex_format = TEX1_VERTEX_FORMAT;
|
||||
setup_tab[IND].vertex_size = 10;
|
||||
setup_tab[IND].vertex_stride_shift = 6;
|
||||
#elif DO_TEX0
|
||||
setup_tab[IND].vertex_format = TEX0_VERTEX_FORMAT;
|
||||
setup_tab[IND].vertex_size = 7;
|
||||
setup_tab[IND].vertex_stride_shift = 6;
|
||||
#elif DO_SPEC || DO_FOG
|
||||
setup_tab[IND].vertex_format = NOTEX_VERTEX_FORMAT;
|
||||
setup_tab[IND].vertex_size = 4;
|
||||
setup_tab[IND].vertex_stride_shift = 6;
|
||||
#else
|
||||
setup_tab[IND].vertex_format = TINY_VERTEX_FORMAT;
|
||||
setup_tab[IND].vertex_size = 3;
|
||||
setup_tab[IND].vertex_stride_shift = 6;
|
||||
#endif
|
||||
|
||||
assert(setup_tab[IND].vertex_size * 4 <=
|
||||
1 << setup_tab[IND].vertex_stride_shift);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1314,21 +1314,21 @@ do { \
|
|||
#define VERT_Y(_v) _v->v.y
|
||||
#define VERT_Z(_v) _v->v.z
|
||||
#define AREA_IS_CCW( a ) (a > 0)
|
||||
#define GET_VERTEX(e) (mmesa->verts + (e<<mmesa->vertex_stride_shift))
|
||||
#define GET_VERTEX(e) (mmesa->verts + ((e) * mmesa->vertex_size * sizeof(int)))
|
||||
|
||||
#define MACH64_COLOR( dst, src ) \
|
||||
do { \
|
||||
dst[0] = src[2]; \
|
||||
dst[1] = src[1]; \
|
||||
dst[2] = src[0]; \
|
||||
dst[3] = src[3]; \
|
||||
UNCLAMPED_FLOAT_TO_UBYTE(dst[0], src[2]); \
|
||||
UNCLAMPED_FLOAT_TO_UBYTE(dst[1], src[1]); \
|
||||
UNCLAMPED_FLOAT_TO_UBYTE(dst[2], src[0]); \
|
||||
UNCLAMPED_FLOAT_TO_UBYTE(dst[3], src[3]); \
|
||||
} while (0)
|
||||
|
||||
#define MACH64_SPEC( dst, src ) \
|
||||
do { \
|
||||
dst[0] = src[2]; \
|
||||
dst[1] = src[1]; \
|
||||
dst[2] = src[0]; \
|
||||
UNCLAMPED_FLOAT_TO_UBYTE(dst[0], src[2]); \
|
||||
UNCLAMPED_FLOAT_TO_UBYTE(dst[1], src[1]); \
|
||||
UNCLAMPED_FLOAT_TO_UBYTE(dst[2], src[0]); \
|
||||
} while (0)
|
||||
|
||||
#define VERT_SET_RGBA( v, c ) MACH64_COLOR( v->ub4[coloroffset], c )
|
||||
|
|
@ -1674,7 +1674,6 @@ static void mach64FastRenderClippedPoly( GLcontext *ctx, const GLuint *elts,
|
|||
{
|
||||
mach64ContextPtr mmesa = MACH64_CONTEXT( ctx );
|
||||
GLubyte *mach64verts = (GLubyte *)mmesa->verts;
|
||||
const GLuint shift = mmesa->vertex_stride_shift;
|
||||
const GLuint *start = (const GLuint *)VERT(elts[0]);
|
||||
int i;
|
||||
|
||||
|
|
|
|||
|
|
@ -60,7 +60,6 @@ static struct {
|
|||
copy_pv_func copy_pv;
|
||||
GLboolean (*check_tex_sizes)( GLcontext *ctx );
|
||||
GLuint vertex_size;
|
||||
GLuint vertex_stride_shift;
|
||||
GLuint vertex_format;
|
||||
} setup_tab[MACH64_MAX_SETUP];
|
||||
|
||||
|
|
@ -89,7 +88,7 @@ static struct {
|
|||
#define GET_TEXSOURCE(n) mmesa->tmu_source[n]
|
||||
#define GET_VERTEX_FORMAT() mmesa->vertex_format
|
||||
#define GET_VERTEX_STORE() mmesa->verts
|
||||
#define GET_VERTEX_STRIDE_SHIFT() mmesa->vertex_stride_shift
|
||||
#define GET_VERTEX_SIZE() mmesa->vertex_size * sizeof(GLuint)
|
||||
|
||||
#define HAVE_HW_VIEWPORT 0
|
||||
#define HAVE_HW_DIVIDE 0
|
||||
|
|
@ -519,8 +518,8 @@ void mach64BuildVertices( GLcontext *ctx,
|
|||
GLuint newinputs )
|
||||
{
|
||||
mach64ContextPtr mmesa = MACH64_CONTEXT( ctx );
|
||||
GLubyte *v = ((GLubyte *)mmesa->verts + (start<<mmesa->vertex_stride_shift));
|
||||
GLuint stride = 1<<mmesa->vertex_stride_shift;
|
||||
GLuint stride = mmesa->vertex_size * sizeof(int);
|
||||
GLubyte *v = ((GLubyte *)mmesa->verts + (start * stride));
|
||||
|
||||
newinputs |= mmesa->SetupNewInputs;
|
||||
mmesa->SetupNewInputs = 0;
|
||||
|
|
@ -599,7 +598,6 @@ void mach64ChooseVertexState( GLcontext *ctx )
|
|||
FLUSH_BATCH(mmesa);
|
||||
mmesa->vertex_format = setup_tab[ind].vertex_format;
|
||||
mmesa->vertex_size = setup_tab[ind].vertex_size;
|
||||
mmesa->vertex_stride_shift = setup_tab[ind].vertex_stride_shift;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -668,14 +668,14 @@ static void TAG(interp)( GLcontext *ctx,
|
|||
LOCALVARS
|
||||
struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb;
|
||||
GLubyte *ddverts = GET_VERTEX_STORE();
|
||||
GLuint shift = GET_VERTEX_STRIDE_SHIFT();
|
||||
GLuint size = GET_VERTEX_SIZE();
|
||||
const GLfloat *dstclip = VB->ClipPtr->data[edst];
|
||||
GLfloat w;
|
||||
const GLfloat *s = GET_VIEWPORT_MAT();
|
||||
|
||||
VERTEX *dst = (VERTEX *)(ddverts + (edst << shift));
|
||||
VERTEX *in = (VERTEX *)(ddverts + (ein << shift));
|
||||
VERTEX *out = (VERTEX *)(ddverts + (eout << shift));
|
||||
VERTEX *dst = (VERTEX *)(ddverts + (edst * size));
|
||||
VERTEX *in = (VERTEX *)(ddverts + (ein * size));
|
||||
VERTEX *out = (VERTEX *)(ddverts + (eout * size));
|
||||
|
||||
(void)s;
|
||||
|
||||
|
|
@ -840,12 +840,10 @@ static void TAG(init)( void )
|
|||
ASSERT(HAVE_PTEX_VERTICES);
|
||||
setup_tab[IND].vertex_format = PROJ_TEX3_VERTEX_FORMAT;
|
||||
setup_tab[IND].vertex_size = 18;
|
||||
setup_tab[IND].vertex_stride_shift = 7;
|
||||
}
|
||||
else {
|
||||
setup_tab[IND].vertex_format = TEX3_VERTEX_FORMAT;
|
||||
setup_tab[IND].vertex_size = 14;
|
||||
setup_tab[IND].vertex_stride_shift = 6;
|
||||
}
|
||||
}
|
||||
else if (DO_TEX2) {
|
||||
|
|
@ -853,12 +851,10 @@ static void TAG(init)( void )
|
|||
ASSERT(HAVE_PTEX_VERTICES);
|
||||
setup_tab[IND].vertex_format = PROJ_TEX3_VERTEX_FORMAT;
|
||||
setup_tab[IND].vertex_size = 18;
|
||||
setup_tab[IND].vertex_stride_shift = 7;
|
||||
}
|
||||
else {
|
||||
setup_tab[IND].vertex_format = TEX2_VERTEX_FORMAT;
|
||||
setup_tab[IND].vertex_size = 12;
|
||||
setup_tab[IND].vertex_stride_shift = 6;
|
||||
}
|
||||
}
|
||||
else if (DO_TEX1) {
|
||||
|
|
@ -866,41 +862,32 @@ static void TAG(init)( void )
|
|||
ASSERT(HAVE_PTEX_VERTICES);
|
||||
setup_tab[IND].vertex_format = PROJ_TEX1_VERTEX_FORMAT;
|
||||
setup_tab[IND].vertex_size = 12;
|
||||
setup_tab[IND].vertex_stride_shift = 6;
|
||||
}
|
||||
else {
|
||||
setup_tab[IND].vertex_format = TEX1_VERTEX_FORMAT;
|
||||
setup_tab[IND].vertex_size = 10;
|
||||
setup_tab[IND].vertex_stride_shift = 6;
|
||||
}
|
||||
}
|
||||
else if (DO_TEX0) {
|
||||
if (DO_PTEX && HAVE_PTEX_VERTICES) {
|
||||
setup_tab[IND].vertex_format = PROJ_TEX1_VERTEX_FORMAT;
|
||||
setup_tab[IND].vertex_size = 12;
|
||||
setup_tab[IND].vertex_stride_shift = 6;
|
||||
} else {
|
||||
setup_tab[IND].vertex_format = TEX0_VERTEX_FORMAT;
|
||||
setup_tab[IND].vertex_size = 8;
|
||||
setup_tab[IND].vertex_stride_shift = 5;
|
||||
}
|
||||
}
|
||||
else if (!HAVE_HW_DIVIDE && !DO_SPEC && !DO_FOG && HAVE_TINY_VERTICES) {
|
||||
setup_tab[IND].vertex_format = TINY_VERTEX_FORMAT;
|
||||
setup_tab[IND].vertex_size = 4;
|
||||
setup_tab[IND].vertex_stride_shift = 4;
|
||||
} else if (HAVE_NOTEX_VERTICES) {
|
||||
setup_tab[IND].vertex_format = NOTEX_VERTEX_FORMAT;
|
||||
setup_tab[IND].vertex_size = 6;
|
||||
setup_tab[IND].vertex_stride_shift = 5;
|
||||
} else {
|
||||
setup_tab[IND].vertex_format = TEX0_VERTEX_FORMAT;
|
||||
setup_tab[IND].vertex_size = 8;
|
||||
setup_tab[IND].vertex_stride_shift = 5;
|
||||
}
|
||||
|
||||
assert(setup_tab[IND].vertex_size * 4 <=
|
||||
1 << setup_tab[IND].vertex_stride_shift);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue