intel: Stop doing special _NEW_STENCIL state flagging on drawbuffers.
authorEric Anholt <eric@anholt.net>
Thu, 20 Jun 2013 16:08:30 +0000 (09:08 -0700)
committerEric Anholt <eric@anholt.net>
Wed, 26 Jun 2013 02:19:21 +0000 (19:19 -0700)
2/3 packets depending on Stencil._Enabled already checked for
_NEW_BUFFERS, so just add _NEW_BUFFERS to the remaining one.

Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/brw_cc.c
src/mesa/drivers/dri/i965/brw_vtbl.c
src/mesa/drivers/dri/i965/brw_wm.c
src/mesa/drivers/dri/i965/gen6_depthstencil.c

index 71f93667510211dd6a8b1e77abff9adfa479d8c2..698af6db87c19bc087a796e7cf6d23d21f8eb4fa 100644 (file)
@@ -104,7 +104,7 @@ static void upload_cc_unit(struct brw_context *brw)
                        sizeof(*cc), 64, &brw->cc.state_offset);
    memset(cc, 0, sizeof(*cc));
 
-   /* _NEW_STENCIL */
+   /* _NEW_STENCIL | _NEW_BUFFERS */
    if (ctx->Stencil._Enabled) {
       const unsigned back = ctx->Stencil._BackFace;
 
@@ -230,7 +230,7 @@ static void upload_cc_unit(struct brw_context *brw)
 
 const struct brw_tracked_state brw_cc_unit = {
    .dirty = {
-      .mesa = _NEW_STENCIL | _NEW_COLOR | _NEW_DEPTH,
+      .mesa = _NEW_STENCIL | _NEW_COLOR | _NEW_DEPTH | _NEW_BUFFERS,
       .brw = BRW_NEW_BATCH | BRW_NEW_STATS_WM,
       .cache = CACHE_NEW_CC_VP
    },
index a47b7a339658e56ecbfeb7cea5d017447eb83d54..2c71c087196969176d253a810507827f9ad314bd 100644 (file)
@@ -130,12 +130,7 @@ brw_update_draw_buffer(struct intel_context *intel)
       return;
    }
 
-   /* Mesa's Stencil._Enabled field is updated when
-    * _NEW_BUFFERS | _NEW_STENCIL, but i965 code assumes that the value
-    * only changes with _NEW_STENCIL (which seems sensible).  So flag it
-    * here since this is the _NEW_BUFFERS path.
-    */
-   intel->NewGLState |= (_NEW_DEPTH | _NEW_STENCIL);
+   intel->NewGLState |= _NEW_DEPTH;
 
    /* The driver uses this in places that need to look up
     * renderbuffers' buffer objects.
index 60dc14a34a58c6e8ce5a0c3557929f4037d7ebd2..6eb4a1dd10564ce7797672b6faba948234e9516a 100644 (file)
@@ -379,7 +379,7 @@ static void brw_wm_populate_key( struct brw_context *brw,
       if (ctx->Depth.Test && ctx->Depth.Mask) /* ?? */
         lookup |= IZ_DEPTH_WRITE_ENABLE_BIT;
 
-      /* _NEW_STENCIL */
+      /* _NEW_STENCIL | _NEW_BUFFERS */
       if (ctx->Stencil._Enabled) {
         lookup |= IZ_STENCIL_TEST_ENABLE_BIT;
 
index a8dbc62ab4fee15b8a23b5e91c19c6670de2124c..8c4714779383c2ef2068027e6f9218f1db0a10cc 100644 (file)
@@ -47,7 +47,7 @@ gen6_upload_depth_stencil_state(struct brw_context *brw)
                        &brw->cc.depth_stencil_state_offset);
    memset(ds, 0, sizeof(*ds));
 
-   /* _NEW_STENCIL */
+   /* _NEW_STENCIL | _NEW_BUFFERS */
    if (ctx->Stencil._Enabled) {
       int back = ctx->Stencil._BackFace;