Module: Mesa
Branch: main
Commit: b4c24d5978a509dd67bd2680dcf6068912d34c6b
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=b4c24d5978a509dd67bd2680dcf6068912d34c6b

Author: Lucas Stach <[email protected]>
Date:   Mon Oct 16 15:31:12 2023 +0200

etnaviv: use correct blit box sizes when copying resource

The padded width/height is stored in samples, while the blit box
dimensions need to be specified in pixels. Use the unpadded
width/height of the resource levels to generate the blit box
dimensions used to copy a resource. The blit code already extends
those sizes to the padded sizes when necessary and possible.
Fixes crashes in some piglit tests with MSAA active.

CC: mesa-stable
Signed-off-by: Lucas Stach <[email protected]>
Reviewed-by: Christian Gmeiner <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25751>

---

 src/gallium/drivers/etnaviv/etnaviv_clear_blit.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/etnaviv/etnaviv_clear_blit.c 
b/src/gallium/drivers/etnaviv/etnaviv_clear_blit.c
index adba89af620..810c368881d 100644
--- a/src/gallium/drivers/etnaviv/etnaviv_clear_blit.c
+++ b/src/gallium/drivers/etnaviv/etnaviv_clear_blit.c
@@ -228,9 +228,9 @@ etna_copy_resource(struct pipe_context *pctx, struct 
pipe_resource *dst,
 
       blit.src.level = blit.dst.level = level;
       blit.src.box.width = blit.dst.box.width =
-         MIN2(src_priv->levels[level].padded_width, 
dst_priv->levels[level].padded_width);
+         MIN2(src_priv->levels[level].width, dst_priv->levels[level].width);
       blit.src.box.height = blit.dst.box.height =
-         MIN2(src_priv->levels[level].padded_height, 
dst_priv->levels[level].padded_height);
+         MIN2(src_priv->levels[level].height, dst_priv->levels[level].height);
       unsigned depth = MIN2(src_priv->levels[level].depth, 
dst_priv->levels[level].depth);
       if (dst->array_size > 1) {
          assert(depth == 1); /* no array of 3d texture */

Reply via email to