Mesa (main): v3dv: divide by block size in copy_image_blit

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Jun 17 11:47:04 UTC 2021


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

Author: Charlie <charlie at daft.games>
Date:   Fri Jun 11 19:58:28 2021 +0100

v3dv: divide by block size in copy_image_blit

This handles compressed formats with non-4x4 blocks, like ASTC.

Reviewed-by: Iago Toral Quiroga <itoral at igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11336>

---

 src/broadcom/vulkan/v3dv_meta_copy.c | 13 ++++---------
 1 file changed, 4 insertions(+), 9 deletions(-)

diff --git a/src/broadcom/vulkan/v3dv_meta_copy.c b/src/broadcom/vulkan/v3dv_meta_copy.c
index 2166ad28c23..84a7eb7bbc9 100644
--- a/src/broadcom/vulkan/v3dv_meta_copy.c
+++ b/src/broadcom/vulkan/v3dv_meta_copy.c
@@ -1816,18 +1816,13 @@ copy_image_blit(struct v3dv_cmd_buffer *cmd_buffer,
        */
       assert(src->cpp == dst->cpp);
 
-      uint32_t divisor_w, divisor_h;
       format = VK_FORMAT_R32G32_UINT;
       switch (src->cpp) {
       case 16:
          format = VK_FORMAT_R32G32B32A32_UINT;
-         divisor_w = 4;
-         divisor_h = 4;
          break;
       case 8:
          format = VK_FORMAT_R16G16B16A16_UINT;
-         divisor_w = 4;
-         divisor_h = 4;
          break;
       default:
          unreachable("Unsupported compressed format");
@@ -1836,10 +1831,10 @@ copy_image_blit(struct v3dv_cmd_buffer *cmd_buffer,
       /* Create image views of the src/dst images that we can interpret in
        * terms of the canonical format.
        */
-      src_scale_w /= divisor_w;
-      src_scale_h /= divisor_h;
-      dst_scale_w /= divisor_w;
-      dst_scale_h /= divisor_h;
+      src_scale_w /= src_block_w;
+      src_scale_h /= src_block_h;
+      dst_scale_w /= src_block_w;
+      dst_scale_h /= src_block_h;
 
       src = create_image_alias(cmd_buffer, src,
                                src_scale_w, src_scale_h, format);



More information about the mesa-commit mailing list