[Mesa-dev] [PATCH] i965/gen4-5: Respect the VERTEX_PROGRAM_TWO_SIDE vertex program/shader flag.

Kenneth Graunke kenneth at whitecape.org
Wed Nov 14 16:42:06 PST 2012


On 11/14/2012 03:56 PM, Eric Anholt wrote:
> Fixes piglit "vertex-program-two-side enabled front back" and 4 others
> on my ironlake system.
> ---
>
> This is a slight variation on a hunk in Olivier Galibert's series,
> adding in the required state flags.
>
>   src/mesa/drivers/dri/i965/brw_sf.c |    7 ++++---
>   1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_sf.c b/src/mesa/drivers/dri/i965/brw_sf.c
> index 23a874a..eb361a9 100644
> --- a/src/mesa/drivers/dri/i965/brw_sf.c
> +++ b/src/mesa/drivers/dri/i965/brw_sf.c
> @@ -190,9 +190,10 @@ brw_upload_sf_prog(struct brw_context *brw)
>      if ((ctx->Point.SpriteOrigin == GL_LOWER_LEFT) != render_to_fbo)
>         key.sprite_origin_lower_left = true;
>
> -   /* _NEW_LIGHT */
> +   /* _NEW_LIGHT | _NEW_PROGRAM */
>      key.do_flat_shading = (ctx->Light.ShadeModel == GL_FLAT);
> -   key.do_twoside_color = (ctx->Light.Enabled && ctx->Light.Model.TwoSide);
> +   key.do_twoside_color = ((ctx->Light.Enabled && ctx->Light.Model.TwoSide) ||
> +                           ctx->VertexProgram._TwoSideEnabled);
>
>      /* _NEW_POLYGON */
>      if (key.do_twoside_color) {
> @@ -214,7 +215,7 @@ brw_upload_sf_prog(struct brw_context *brw)
>   const struct brw_tracked_state brw_sf_prog = {
>      .dirty = {
>         .mesa  = (_NEW_HINT | _NEW_LIGHT | _NEW_POLYGON | _NEW_POINT |
> -                _NEW_TRANSFORM | _NEW_BUFFERS),
> +                _NEW_TRANSFORM | _NEW_BUFFERS | _NEW_PROGRAM),
>         .brw   = (BRW_NEW_REDUCED_PRIMITIVE),
>         .cache = CACHE_NEW_VS_PROG
>      },

Looks good to me.

Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>



More information about the mesa-dev mailing list