mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 04:58:05 +02: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
|
/* 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 )
|
||||||
{
|
{
|
||||||
TNLcontext *tnl = TNL_CONTEXT(ctx);
|
TNLcontext *tnl = TNL_CONTEXT(ctx);
|
||||||
GLint i;
|
GLint i;
|
||||||
|
|
||||||
for (i = _TNL_ATTRIB_MAT_FRONT_AMBIENT;
|
for (i = _TNL_ATTRIB_MAT_FRONT_AMBIENT;
|
||||||
i < _TNL_ATTRIB_MAT_BACK_INDEXES;
|
i < _TNL_ATTRIB_MAT_BACK_INDEXES;
|
||||||
i++)
|
i++)
|
||||||
if (tnl->vb.AttribPtr[i] &&
|
if (tnl->vb.AttribPtr[i] &&
|
||||||
tnl->vb.AttribPtr[i]->stride)
|
tnl->vb.AttribPtr[i]->stride)
|
||||||
|
|
@ -2558,7 +2560,7 @@ static GLboolean check_material( GLcontext *ctx )
|
||||||
|
|
||||||
return GL_FALSE;
|
return GL_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void r200WrapRunPipeline( GLcontext *ctx )
|
static void r200WrapRunPipeline( GLcontext *ctx )
|
||||||
{
|
{
|
||||||
r200ContextPtr rmesa = R200_CONTEXT(ctx);
|
r200ContextPtr rmesa = R200_CONTEXT(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 );
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue