From: Kenneth Graunke Date: Tue, 26 Apr 2016 08:44:51 +0000 (-0700) Subject: i965: Fix MapTextureImage for multi-slice/level stencil buffers. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1e44599a43f6e9e35c4e951d55897c4e5a750fb9;p=mesa.git 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 Reviewed-by: Ian Romanick Reviewed-by: Chris Forbes --- diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c index 4072bdf881b..3d8f48e93c1 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]; }