Mesa (master): i965: Fix MapTextureImage for multi-slice/ level stencil buffers.

Kenneth Graunke kwg at kemper.freedesktop.org
Wed Apr 27 04:35:51 UTC 2016


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

Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Tue Apr 26 01:44:51 2016 -0700

i965: Fix MapTextureImage for multi-slice/level stencil buffers.

We called intel_miptree_get_image_offset() to get the image offsets
for the current level/slice, but then proceeded to ignore the results
and clobber level/slice 0 every time.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94713
Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
Reviewed-by: Chris Forbes <chrisf at ijw.co.nz>

---

 src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
index 4072bdf..3d8f48e 100644
--- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
+++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
@@ -2498,8 +2498,8 @@ intel_miptree_unmap_s8(struct brw_context *brw,
       for (uint32_t y = 0; y < map->h; y++) {
 	 for (uint32_t x = 0; x < map->w; x++) {
 	    ptrdiff_t offset = intel_offset_S8(mt->pitch,
-	                                       x + map->x,
-	                                       y + map->y,
+	                                       image_x + x + map->x,
+	                                       image_y + y + map->y,
 					       brw->has_swizzling);
 	    tiled_s8_map[offset] = untiled_s8_map[y * map->w + x];
 	 }




More information about the mesa-commit mailing list