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 <kenn...@whitecape.org>

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to