In all current uses, the linear surface is only allocated starting at (xt1, yt1) anyway, so this improves the calling ergonomics. --- src/mesa/drivers/dri/i965/intel_pixel_read.c | 2 +- src/mesa/drivers/dri/i965/intel_tex_image.c | 4 ++-- src/mesa/drivers/dri/i965/intel_tiled_memcpy.c | 16 ++++++++-------- 3 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/intel_pixel_read.c b/src/mesa/drivers/dri/i965/intel_pixel_read.c index 4528d6d265..cf957378f9 100644 --- a/src/mesa/drivers/dri/i965/intel_pixel_read.c +++ b/src/mesa/drivers/dri/i965/intel_pixel_read.c @@ -202,7 +202,7 @@ intel_readpixels_tiled_memcpy(struct gl_context * ctx, tiled_to_linear( xoffset * cpp, (xoffset + width) * cpp, yoffset, yoffset + height, - pixels - (ptrdiff_t) yoffset * dst_pitch - (ptrdiff_t) xoffset * cpp, + pixels, map + irb->mt->offset, dst_pitch, irb->mt->surf.row_pitch, brw->has_swizzling, diff --git a/src/mesa/drivers/dri/i965/intel_tex_image.c b/src/mesa/drivers/dri/i965/intel_tex_image.c index 2ee36583c4..28fdd680da 100644 --- a/src/mesa/drivers/dri/i965/intel_tex_image.c +++ b/src/mesa/drivers/dri/i965/intel_tex_image.c @@ -294,7 +294,7 @@ intel_texsubimage_tiled_memcpy(struct gl_context * ctx, xoffset * cpp, (xoffset + width) * cpp, yoffset, yoffset + height, map, - pixels - (ptrdiff_t) yoffset * src_pitch - (ptrdiff_t) xoffset * cpp, + pixels, image->mt->surf.row_pitch, src_pitch, brw->has_swizzling, image->mt->surf.tiling, @@ -742,7 +742,7 @@ intel_gettexsubimage_tiled_memcpy(struct gl_context *ctx, tiled_to_linear( xoffset * cpp, (xoffset + width) * cpp, yoffset, yoffset + height, - pixels - (ptrdiff_t) yoffset * dst_pitch - (ptrdiff_t) xoffset * cpp, + pixels, map, dst_pitch, image->mt->surf.row_pitch, brw->has_swizzling, diff --git a/src/mesa/drivers/dri/i965/intel_tiled_memcpy.c b/src/mesa/drivers/dri/i965/intel_tiled_memcpy.c index 53a5679691..e2b7b3496d 100644 --- a/src/mesa/drivers/dri/i965/intel_tiled_memcpy.c +++ b/src/mesa/drivers/dri/i965/intel_tiled_memcpy.c @@ -624,8 +624,8 @@ ytiled_to_linear_faster(uint32_t x0, uint32_t x1, uint32_t x2, uint32_t x3, * copy function (\ref tile_copy_fn). * The X range is in bytes, i.e. pixels * bytes-per-pixel. * The Y range is in pixels (i.e. unitless). - * 'dst' is the start of the texture and 'src' is the corresponding - * address to copy from, though copying begins at (xt1, yt1). + * 'dst' is the address of (0, 0) in the destination tiled texture. + * 'src' is the address of (xt1, yt1) in the source linear texture. */ void linear_to_tiled(uint32_t xt1, uint32_t xt2, @@ -698,8 +698,8 @@ linear_to_tiled(uint32_t xt1, uint32_t xt2, /* Translate by (xt,yt) for single-tile copier. */ tile_copy(x0-xt, x1-xt, x2-xt, x3-xt, y0-yt, y1-yt, - dst + (ptrdiff_t) xt * th + (ptrdiff_t) yt * dst_pitch, - src + (ptrdiff_t) xt + (ptrdiff_t) yt * src_pitch, + dst + (ptrdiff_t)xt * th + (ptrdiff_t)yt * dst_pitch, + src + (ptrdiff_t)xt - xt1 + ((ptrdiff_t)yt - yt1) * src_pitch, src_pitch, swizzle_bit, mem_copy); @@ -715,8 +715,8 @@ linear_to_tiled(uint32_t xt1, uint32_t xt2, * copy function (\ref tile_copy_fn). * The X range is in bytes, i.e. pixels * bytes-per-pixel. * The Y range is in pixels (i.e. unitless). - * 'dst' is the start of the texture and 'src' is the corresponding - * address to copy from, though copying begins at (xt1, yt1). + * 'dst' is the address of (xt1, yt1) in the destination linear texture. + * 'src' is the address of (0, 0) in the source tiled texture. */ void tiled_to_linear(uint32_t xt1, uint32_t xt2, @@ -789,8 +789,8 @@ tiled_to_linear(uint32_t xt1, uint32_t xt2, /* Translate by (xt,yt) for single-tile copier. */ tile_copy(x0-xt, x1-xt, x2-xt, x3-xt, y0-yt, y1-yt, - dst + (ptrdiff_t) xt + (ptrdiff_t) yt * dst_pitch, - src + (ptrdiff_t) xt * th + (ptrdiff_t) yt * src_pitch, + dst + (ptrdiff_t)xt - xt1 + ((ptrdiff_t)yt - yt1) * dst_pitch, + src + (ptrdiff_t)xt * th + (ptrdiff_t)yt * src_pitch, dst_pitch, swizzle_bit, mem_copy); -- 2.14.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev