From 06621e8a0df9ece4211e9d612b9199c9403e2290 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Mathias=20Fr=C3=B6hlich?= Date: Sat, 27 Jan 2018 12:09:00 -0700 Subject: [PATCH] mesa: Care for differences in fog mode only if fog is consumed. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 --- src/mesa/main/ffvertex_prog.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) 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; -- 2.30.2