i956: Make state dependency of SF on drawbuffer bounds match Mesa's.
authorEric Anholt <eric@anholt.net>
Wed, 20 May 2009 22:59:07 +0000 (15:59 -0700)
committerEric Anholt <eric@anholt.net>
Thu, 21 May 2009 17:41:39 +0000 (10:41 -0700)
Noticed while debugging a weird 1D FBO testcase that left its existing
viewport and projection matrix in place when switching drawbuffers.  Didn't
fix the testcase, though.

src/mesa/drivers/dri/i965/brw_sf_state.c

index 68fa9820b6fba3a82926abaa8911ef38965720f3..c99918724b36b8964b021c74cf82563bab12a34e 100644 (file)
@@ -66,7 +66,9 @@ static void upload_sf_vp(struct brw_context *brw)
    sfv.viewport.m31 = v[MAT_TY] * y_scale + y_bias;
    sfv.viewport.m32 = v[MAT_TZ] * depth_scale;
 
-   /* _NEW_SCISSOR */
+   /* _NEW_SCISSOR | _NEW_BUFFERS | _NEW_VIEWPORT
+    * for DrawBuffer->_[XY]{min,max}
+    */
 
    /* The scissor only needs to handle the intersection of drawable and
     * scissor rect.  Clipping to the boundaries of static shared buffers
@@ -97,7 +99,8 @@ static void upload_sf_vp(struct brw_context *brw)
 const struct brw_tracked_state brw_sf_vp = {
    .dirty = {
       .mesa  = (_NEW_VIEWPORT | 
-               _NEW_SCISSOR),
+               _NEW_SCISSOR |
+               _NEW_BUFFERS),
       .brw   = 0,
       .cache = 0
    },