mesa: don't update fixed-func programs on irrelevant _NEW_FOG changes
Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com> Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8850>
This commit is contained in:
parent
15580e85cc
commit
6302ffeda4
|
@ -538,7 +538,8 @@ _mesa_set_enable(struct gl_context *ctx, GLenum cap, GLboolean state)
|
||||||
goto invalid_enum_error;
|
goto invalid_enum_error;
|
||||||
if (ctx->Fog.Enabled == state)
|
if (ctx->Fog.Enabled == state)
|
||||||
return;
|
return;
|
||||||
FLUSH_VERTICES(ctx, _NEW_FOG, GL_FOG_BIT | GL_ENABLE_BIT);
|
FLUSH_VERTICES(ctx, _NEW_FOG | _NEW_FF_FRAG_PROGRAM,
|
||||||
|
GL_FOG_BIT | GL_ENABLE_BIT);
|
||||||
ctx->Fog.Enabled = state;
|
ctx->Fog.Enabled = state;
|
||||||
ctx->Fog._PackedEnabledMode = state ? ctx->Fog._PackedMode : FOG_NONE;
|
ctx->Fog._PackedEnabledMode = state ? ctx->Fog._PackedMode : FOG_NONE;
|
||||||
break;
|
break;
|
||||||
|
@ -1007,7 +1008,8 @@ _mesa_set_enable(struct gl_context *ctx, GLenum cap, GLboolean state)
|
||||||
goto invalid_enum_error;
|
goto invalid_enum_error;
|
||||||
if (ctx->Fog.ColorSumEnabled == state)
|
if (ctx->Fog.ColorSumEnabled == state)
|
||||||
return;
|
return;
|
||||||
FLUSH_VERTICES(ctx, _NEW_FOG, GL_FOG_BIT | GL_ENABLE_BIT);
|
FLUSH_VERTICES(ctx, _NEW_FOG | _NEW_FF_FRAG_PROGRAM,
|
||||||
|
GL_FOG_BIT | GL_ENABLE_BIT);
|
||||||
ctx->Fog.ColorSumEnabled = state;
|
ctx->Fog.ColorSumEnabled = state;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -106,8 +106,10 @@ _mesa_Fogfv( GLenum pname, const GLfloat *params )
|
||||||
return;
|
return;
|
||||||
FLUSH_VERTICES(ctx, _NEW_FOG, GL_FOG_BIT);
|
FLUSH_VERTICES(ctx, _NEW_FOG, GL_FOG_BIT);
|
||||||
ctx->Fog.Mode = m;
|
ctx->Fog.Mode = m;
|
||||||
ctx->Fog._PackedEnabledMode = ctx->Fog.Enabled ?
|
if (ctx->Fog.Enabled) {
|
||||||
ctx->Fog._PackedMode : FOG_NONE;
|
ctx->Fog._PackedEnabledMode = ctx->Fog._PackedMode;
|
||||||
|
ctx->NewState |= _NEW_FF_FRAG_PROGRAM;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case GL_FOG_DENSITY:
|
case GL_FOG_DENSITY:
|
||||||
if (*params<0.0F) {
|
if (*params<0.0F) {
|
||||||
|
@ -161,7 +163,7 @@ _mesa_Fogfv( GLenum pname, const GLfloat *params )
|
||||||
}
|
}
|
||||||
if (ctx->Fog.FogCoordinateSource == p)
|
if (ctx->Fog.FogCoordinateSource == p)
|
||||||
return;
|
return;
|
||||||
FLUSH_VERTICES(ctx, _NEW_FOG, GL_FOG_BIT);
|
FLUSH_VERTICES(ctx, _NEW_FOG | _NEW_FF_VERT_PROGRAM, GL_FOG_BIT);
|
||||||
ctx->Fog.FogCoordinateSource = p;
|
ctx->Fog.FogCoordinateSource = p;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -174,7 +176,7 @@ _mesa_Fogfv( GLenum pname, const GLfloat *params )
|
||||||
}
|
}
|
||||||
if (ctx->Fog.FogDistanceMode == p)
|
if (ctx->Fog.FogDistanceMode == p)
|
||||||
return;
|
return;
|
||||||
FLUSH_VERTICES(ctx, _NEW_FOG, GL_FOG_BIT);
|
FLUSH_VERTICES(ctx, _NEW_FOG | _NEW_FF_VERT_PROGRAM, GL_FOG_BIT);
|
||||||
ctx->Fog.FogDistanceMode = p;
|
ctx->Fog.FogDistanceMode = p;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -487,13 +487,13 @@ _mesa_update_state_locked( struct gl_context *ctx )
|
||||||
GLbitfield prog_flags = _NEW_PROGRAM;
|
GLbitfield prog_flags = _NEW_PROGRAM;
|
||||||
|
|
||||||
if (ctx->FragmentProgram._UsesTexEnvProgram) {
|
if (ctx->FragmentProgram._UsesTexEnvProgram) {
|
||||||
prog_flags |= _NEW_BUFFERS | _NEW_TEXTURE_OBJECT | _NEW_FOG |
|
prog_flags |= _NEW_BUFFERS | _NEW_TEXTURE_OBJECT |
|
||||||
_NEW_FF_FRAG_PROGRAM | _NEW_RENDERMODE |
|
_NEW_FF_FRAG_PROGRAM | _NEW_RENDERMODE |
|
||||||
_NEW_COLOR | _NEW_TEXTURE_STATE;
|
_NEW_COLOR | _NEW_TEXTURE_STATE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ctx->VertexProgram._UsesTnlProgram)
|
if (ctx->VertexProgram._UsesTnlProgram)
|
||||||
prog_flags |= _NEW_FF_VERT_PROGRAM | _NEW_FOG;
|
prog_flags |= _NEW_FF_VERT_PROGRAM;
|
||||||
|
|
||||||
if (new_state & prog_flags) {
|
if (new_state & prog_flags) {
|
||||||
/* When we generate programs from fixed-function vertex/fragment state
|
/* When we generate programs from fixed-function vertex/fragment state
|
||||||
|
|
Loading…
Reference in New Issue