mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-18 22:00:25 +01:00
disable r200 materials-between-begin-end check if vertex progs are enabled
This commit is contained in:
parent
f697308ae5
commit
2a441c488f
1 changed files with 7 additions and 5 deletions
|
|
@ -2542,15 +2542,17 @@ static void r200InvalidateState( GLcontext *ctx, GLuint new_state )
|
|||
}
|
||||
|
||||
/* 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 )
|
||||
{
|
||||
TNLcontext *tnl = TNL_CONTEXT(ctx);
|
||||
GLint i;
|
||||
|
||||
for (i = _TNL_ATTRIB_MAT_FRONT_AMBIENT;
|
||||
i < _TNL_ATTRIB_MAT_BACK_INDEXES;
|
||||
for (i = _TNL_ATTRIB_MAT_FRONT_AMBIENT;
|
||||
i < _TNL_ATTRIB_MAT_BACK_INDEXES;
|
||||
i++)
|
||||
if (tnl->vb.AttribPtr[i] &&
|
||||
tnl->vb.AttribPtr[i]->stride)
|
||||
|
|
@ -2558,7 +2560,7 @@ static GLboolean check_material( GLcontext *ctx )
|
|||
|
||||
return GL_FALSE;
|
||||
}
|
||||
|
||||
|
||||
static void r200WrapRunPipeline( GLcontext *ctx )
|
||||
{
|
||||
r200ContextPtr rmesa = R200_CONTEXT(ctx);
|
||||
|
|
@ -2572,7 +2574,7 @@ static void r200WrapRunPipeline( GLcontext *ctx )
|
|||
if (rmesa->NewGLState)
|
||||
r200ValidateState( ctx );
|
||||
|
||||
has_material = (ctx->Light.Enabled && check_material( ctx ));
|
||||
has_material = !ctx->VertexProgram._Enabled && ctx->Light.Enabled && check_material( ctx );
|
||||
|
||||
if (has_material) {
|
||||
TCL_FALLBACK( ctx, R200_TCL_FALLBACK_MATERIAL, GL_TRUE );
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue