You might consider also including whether the interpolation method was forced or not. i.e. if you have
flat varying vec4 gl_Color; then it doesn't matter whether shade model is flat or not, it'll be interpolated as flat. (Same with the other qualifiers made available in GL 3.0.) So you only have to do funny stuff if either COL0 / COL1 don't have explicit interpolation qualifiers. That might be over-optimizing it though. Your call. Just something that occurred to me. -ilia On Tue, Aug 22, 2017 at 10:19 PM, Kenneth Graunke <kenn...@whitecape.org> wrote: > This may reduce some recompiles. > --- > src/mesa/drivers/dri/i965/brw_wm.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/src/mesa/drivers/dri/i965/brw_wm.c > b/src/mesa/drivers/dri/i965/brw_wm.c > index c9c45045902..e1555d60c56 100644 > --- a/src/mesa/drivers/dri/i965/brw_wm.c > +++ b/src/mesa/drivers/dri/i965/brw_wm.c > @@ -531,7 +531,9 @@ brw_wm_populate_key(struct brw_context *brw, struct > brw_wm_prog_key *key) > key->stats_wm = brw->stats_wm; > > /* _NEW_LIGHT */ > - key->flat_shade = (ctx->Light.ShadeModel == GL_FLAT); > + key->flat_shade = > + (prog->info.inputs_read & (VARYING_BIT_COL0 | VARYING_BIT_COL1)) && > + (ctx->Light.ShadeModel == GL_FLAT); > > /* _NEW_FRAG_CLAMP | _NEW_BUFFERS */ > key->clamp_fragment_color = ctx->Color._ClampFragmentColor; > -- > 2.14.1 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev