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

Author: Anuj Phogat <[email protected]>
Date:   Mon Jul 14 16:16:47 2014 -0700

i965: Fix z_offset computation in intel_miptree_unmap_depthstencil()

The bug is triggered by using glTexSubImage2d() with GL_DEPTH_STENCIL
as base internal format and non-zero x, y offsets. Currently x, y
offsets are ignored while updating the texture image.

Fixes Khronos GLES3 CTS tests:
npot_tex_sub_image_2d
npot_tex_sub_image_3d
npot_pbo_tex_sub_image_2d
npot_pbo_tex_sub_image_2d

Cc: <[email protected]>
Signed-off-by: Anuj Phogat <[email protected]>
Reviewed-by: Jordan Justen <[email protected]>

---

 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 2ab0faa..b36ffc7 100644
--- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
+++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
@@ -2129,9 +2129,9 @@ intel_miptree_unmap_depthstencil(struct brw_context *brw,
                                                 x + s_image_x + map->x,
                                                 y + s_image_y + map->y,
                                                 brw->has_swizzling);
-           ptrdiff_t z_offset = ((y + z_image_y) *
+           ptrdiff_t z_offset = ((y + z_image_y + map->y) *
                                   (z_mt->pitch / 4) +
-                                 (x + z_image_x));
+                                 (x + z_image_x + map->x));
 
            if (map_z32f_x24s8) {
               z_map[z_offset] = packed_map[(y * map->w + x) * 2 + 0];

_______________________________________________
mesa-commit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to