i965: Use the renderbuffer surface size instead of region size for WM surfaces.
authorEric Anholt <eric@anholt.net>
Sat, 5 Sep 2009 00:59:08 +0000 (17:59 -0700)
committerEric Anholt <eric@anholt.net>
Tue, 8 Sep 2009 21:28:23 +0000 (14:28 -0700)
For drawing to lower mipmap levels, the region size makes the renderbuffer
be the size of the lowest level, instead of the current level.  On DRI1,
Brian previously found that the RB size was incorrect, so leave this broken
there.

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

index 096f743..c3f8750 100644 (file)
@@ -545,8 +545,13 @@ brw_update_renderbuffer_surface(struct brw_context *brw,
                       irb->texformat->MesaFormat);
       }
       key.tiling = region->tiling;
-      key.width = region->width;
-      key.height = region->height;
+      if (brw->intel.intelScreen->driScrnPriv->dri2.enabled) {
+        key.width = rb->Width;
+        key.height = rb->Height;
+      } else {
+        key.width = region->width;
+        key.height = region->height;
+      }
       key.pitch = region->pitch;
       key.cpp = region->cpp;
       key.draw_offset = region->draw_offset; /* cur 3d or cube face offset */