From 4cf20d923627aa5f8fdce129b4259eef97f230c7 Mon Sep 17 00:00:00 2001 From: Keith Whitwell Date: Mon, 16 May 2005 08:36:28 +0000 Subject: Apply r200 tcl fix to radeon - compiles but untested. --- src/mesa/drivers/dri/radeon/radeon_tcl.c | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'src/mesa') diff --git a/src/mesa/drivers/dri/radeon/radeon_tcl.c b/src/mesa/drivers/dri/radeon/radeon_tcl.c index d1b66c19a1..6eb35c0f27 100644 --- a/src/mesa/drivers/dri/radeon/radeon_tcl.c +++ b/src/mesa/drivers/dri/radeon/radeon_tcl.c @@ -293,6 +293,7 @@ static GLboolean radeon_run_tcl_render( GLcontext *ctx, radeonContextPtr rmesa = RADEON_CONTEXT(ctx); TNLcontext *tnl = TNL_CONTEXT(ctx); struct vertex_buffer *VB = &tnl->vb; + GLuint inputs = VERT_BIT_POS | VERT_BIT_COLOR0; GLuint i; /* TODO: separate this from the swtnl pipeline @@ -303,8 +304,31 @@ static GLboolean radeon_run_tcl_render( GLcontext *ctx, if (VB->Count == 0) return GL_FALSE; + /* NOTE: inputs != tnl->render_inputs - these are the untransformed + * inputs. + */ + if (ctx->Light.Enabled) { + inputs |= VERT_BIT_NORMAL; + if (ctx->_TriangleCaps & DD_SEPARATE_SPECULAR) { + inputs |= VERT_BIT_COLOR1; + } + } + + if ( ctx->Fog.FogCoordinateSource == GL_FOG_COORD ) { + inputs |= VERT_BIT_FOG; + } + + for (i = 0 ; i < ctx->Const.MaxTextureUnits; i++) { + if (ctx->Texture.Unit[i]._ReallyEnabled) { + if (rmesa->TexGenNeedNormals[i]) { + inputs |= VERT_BIT_NORMAL; + } + inputs |= VERT_BIT_TEX(i); + } + } + radeonReleaseArrays( ctx, ~0 ); - radeonEmitArrays( ctx, tnl->render_inputs ); + radeonEmitArrays( ctx, inputs ); rmesa->tcl.Elts = VB->Elts; -- cgit v1.2.3