Mesa (main): anv: Use the common image<->buffer copy helper

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Jun 7 18:25:03 UTC 2022


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

Author: Jason Ekstrand <jason at jlekstrand.net>
Date:   Sat Jun  4 23:07:51 2022 -0500

anv: Use the common image<->buffer copy helper

Reviewed-by: Dave Airlie <airlied at redhat.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16873>

---

 src/intel/vulkan/anv_blorp.c | 23 +++++------------------
 1 file changed, 5 insertions(+), 18 deletions(-)

diff --git a/src/intel/vulkan/anv_blorp.c b/src/intel/vulkan/anv_blorp.c
index e2c7ed32d06..6dab9036ea1 100644
--- a/src/intel/vulkan/anv_blorp.c
+++ b/src/intel/vulkan/anv_blorp.c
@@ -508,21 +508,8 @@ copy_buffer_to_image(struct anv_cmd_buffer *cmd_buffer,
    const struct isl_format_layout *linear_fmtl =
       isl_format_get_layout(linear_format);
 
-   const uint32_t buffer_row_length =
-      region->bufferRowLength ?
-      region->bufferRowLength : extent.width;
-
-   const uint32_t buffer_image_height =
-      region->bufferImageHeight ?
-      region->bufferImageHeight : extent.height;
-
-   const uint32_t buffer_row_pitch =
-      DIV_ROUND_UP(buffer_row_length, linear_fmtl->bw) *
-      (linear_fmtl->bpb / 8);
-
-   const uint32_t buffer_layer_stride =
-      DIV_ROUND_UP(buffer_image_height, linear_fmtl->bh) *
-      buffer_row_pitch;
+   const struct vk_image_buffer_layout buffer_layout =
+      vk_image_buffer_copy_layout(&anv_image->vk, region);
 
    /* Some formats have additional restrictions which may cause ISL to
     * fail to create a surface for us.  For example, YCbCr formats
@@ -543,8 +530,8 @@ copy_buffer_to_image(struct anv_cmd_buffer *cmd_buffer,
    get_blorp_surf_for_anv_buffer(cmd_buffer->device,
                                  anv_buffer, region->bufferOffset,
                                  buffer_extent.width, buffer_extent.height,
-                                 buffer_row_pitch, buffer_format, false,
-                                 &buffer.surf, &buffer_isl_surf);
+                                 buffer_layout.row_stride_B, buffer_format,
+                                 false, &buffer.surf, &buffer_isl_surf);
 
    bool dst_has_shadow = false;
    struct blorp_surf dst_shadow_surf;
@@ -583,7 +570,7 @@ copy_buffer_to_image(struct anv_cmd_buffer *cmd_buffer,
       }
 
       image.offset.z++;
-      buffer.surf.addr.offset += buffer_layer_stride;
+      buffer.surf.addr.offset += buffer_layout.image_stride_B;
    }
 }
 



More information about the mesa-commit mailing list