[Mesa-stable] [Mesa-dev] [PATCH] i965: Fix z_offset computation in intel_miptree_unmap_depthstencil()

Jordan Justen jljusten at gmail.com
Thu Jul 17 11:36:15 PDT 2014


Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>

On Wed, Jul 16, 2014 at 3:32 PM, Anuj Phogat <anuj.phogat at gmail.com> wrote:
> 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: <mesa-stable at lists.freedesktop.org>
> Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
> ---
>  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];
> --
> 1.9.3
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-stable mailing list