From: Mathias Fröhlich Date: Sat, 27 Jan 2018 19:09:00 +0000 (-0700) Subject: mesa: Care for differences in fog mode only if fog is consumed. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=06621e8a0df9ece4211e9d612b9199c9403e2290;p=mesa.git mesa: Care for differences in fog mode only if fog is consumed. In creating fixed function vertex shader hash keys do only care for producing the varying output if fog is enabled and the varing is consumed in the fragment stage. Signed-off-by: Mathias Fröhlich Reviewed-by: Brian Paul --- diff --git a/src/mesa/main/ffvertex_prog.c b/src/mesa/main/ffvertex_prog.c index 172ab698dbd..6d852496e02 100644 --- a/src/mesa/main/ffvertex_prog.c +++ b/src/mesa/main/ffvertex_prog.c @@ -222,9 +222,11 @@ static void make_state_key( struct gl_context *ctx, struct state_key *key ) if (ctx->Transform.RescaleNormals) key->rescale_normals = 1; - key->fog_distance_mode = - translate_fog_distance_mode(ctx->Fog.FogCoordinateSource, - ctx->Fog.FogDistanceMode); + /* Only distinguish fog parameters if we actually need */ + if (key->fragprog_inputs_read & VARYING_BIT_FOGC) + key->fog_distance_mode = + translate_fog_distance_mode(ctx->Fog.FogCoordinateSource, + ctx->Fog.FogDistanceMode); if (ctx->Point._Attenuated) key->point_attenuated = 1;