[Mesa-dev] [PATCH] i965: Only set key->flat_shade if COL0/COL1 are written.

Ilia Mirkin imirkin at alum.mit.edu
Wed Aug 23 19:04:40 UTC 2017


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 <kenneth at 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 at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list