Module: Mesa Branch: master Commit: 8c0f76e961ae023bbe7c8deed1abd04496e9691b URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8c0f76e961ae023bbe7c8deed1abd04496e9691b
Author: Ilia Mirkin <[email protected]> Date: Wed Nov 9 16:41:16 2016 -0500 swr: fix texture layout for compressed formats Fixes the texsubimage piglit and lets the copyteximage one get further. Signed-off-by: Ilia Mirkin <[email protected]> Reviewed-by: Bruce Cherniak <[email protected]> --- src/gallium/drivers/swr/swr_context.cpp | 5 +++-- src/gallium/drivers/swr/swr_screen.cpp | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/gallium/drivers/swr/swr_context.cpp b/src/gallium/drivers/swr/swr_context.cpp index 6c0782a..a5ab236 100644 --- a/src/gallium/drivers/swr/swr_context.cpp +++ b/src/gallium/drivers/swr/swr_context.cpp @@ -157,8 +157,9 @@ swr_transfer_map(struct pipe_context *pipe, } } - unsigned offset = box->z * pt->layer_stride + box->y * pt->stride - + box->x * util_format_get_blocksize(format); + unsigned offset = box->z * pt->layer_stride + + util_format_get_nblocksy(format, box->y) * pt->stride + + util_format_get_stride(format, box->x); *transfer = pt; diff --git a/src/gallium/drivers/swr/swr_screen.cpp b/src/gallium/drivers/swr/swr_screen.cpp index fa16edd..16a8bcf 100644 --- a/src/gallium/drivers/swr/swr_screen.cpp +++ b/src/gallium/drivers/swr/swr_screen.cpp @@ -796,8 +796,9 @@ swr_texture_layout(struct swr_screen *screen, res->alignedHeight = alignedHeight; } - res->row_stride[level] = alignedWidth * finfo.Bpp; - res->img_stride[level] = res->row_stride[level] * alignedHeight; + res->row_stride[level] = util_format_get_stride(fmt, alignedWidth); + res->img_stride[level] = + res->row_stride[level] * util_format_get_nblocksy(fmt, alignedHeight); res->mip_offsets[level] = total_size; if (pt->target == PIPE_TEXTURE_3D) _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
