disable r200 materials-between-begin-end check if vertex progs are enabled

This commit is contained in:
Roland Scheidegger 2007-02-03 03:31:31 +01:00
parent f697308ae5
commit 2a441c488f

View file

@ -2542,7 +2542,9 @@ static void r200InvalidateState( GLcontext *ctx, GLuint new_state )
} }
/* A hack. The r200 can actually cope just fine with materials /* A hack. The r200 can actually cope just fine with materials
* between begin/ends, so fix this. But how ? * between begin/ends, so fix this.
* Should map to inputs just like the generic vertex arrays for vertex progs.
* In theory there could still be too many and we'd still need a fallback.
*/ */
static GLboolean check_material( GLcontext *ctx ) static GLboolean check_material( GLcontext *ctx )
{ {
@ -2572,7 +2574,7 @@ static void r200WrapRunPipeline( GLcontext *ctx )
if (rmesa->NewGLState) if (rmesa->NewGLState)
r200ValidateState( ctx ); r200ValidateState( ctx );
has_material = (ctx->Light.Enabled && check_material( ctx )); has_material = !ctx->VertexProgram._Enabled && ctx->Light.Enabled && check_material( ctx );
if (has_material) { if (has_material) {
TCL_FALLBACK( ctx, R200_TCL_FALLBACK_MATERIAL, GL_TRUE ); TCL_FALLBACK( ctx, R200_TCL_FALLBACK_MATERIAL, GL_TRUE );