From 34b6ae96c08d2fd667f04cdfe1b029a26cad562f Mon Sep 17 00:00:00 2001 From: Lucas Stach Date: Fri, 5 Apr 2024 11:04:49 +0200 Subject: [PATCH] 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. This commit needed to be reverted previously, as it triggered a bug in the RS blit path. This bug has been fixed so now we can reapply this change to get the blit dimensions corrected. Signed-off-by: Lucas Stach Reviewed-by: Christian Gmeiner Part-of: --- 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 275dffbdc7f..30f0086170d 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_clear_blit.c +++ b/src/gallium/drivers/etnaviv/etnaviv_clear_blit.c @@ -229,9 +229,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 */