Mesa (master): i965: Use the renderbuffer surface size instead of region size for WM surfaces.

Eric Anholt anholt at kemper.freedesktop.org
Tue Sep 8 21:34:00 UTC 2009


Module: Mesa
Branch: master
Commit: ea6dab2537998d6910c04cd7bb68a79bee8fda68
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ea6dab2537998d6910c04cd7bb68a79bee8fda68

Author: Eric Anholt <eric at anholt.net>
Date:   Fri Sep  4 17:59:08 2009 -0700

i965: Use the renderbuffer surface size instead of region size for WM surfaces.

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 |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
index 096f743..c3f8750 100644
--- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
+++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
@@ -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 */




More information about the mesa-commit mailing list