i965: Fix MapTextureImage for multi-slice/level stencil buffers.
authorKenneth Graunke <kenneth@whitecape.org>
Tue, 26 Apr 2016 08:44:51 +0000 (01:44 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Wed, 27 Apr 2016 04:32:35 +0000 (21:32 -0700)
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@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
src/mesa/drivers/dri/i965/intel_mipmap_tree.c

index 4072bdf881b74575159cf8922221c78000b62897..3d8f48e93c1cf10f02967f01e133ebc838ba81fd 100644 (file)
@@ -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];
         }