Mesa (main): radv: Use vk_image_buffer_copy_layout
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Jun 7 18:25:03 UTC 2022
Module: Mesa
Branch: main
Commit: 8d6b7eb5cece9b0b7cbfafd7a3cb4bb3d12e3276
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8d6b7eb5cece9b0b7cbfafd7a3cb4bb3d12e3276
Author: Jason Ekstrand <jason.ekstrand at collabora.com>
Date: Mon Jun 6 08:22:12 2022 -0500
radv: Use vk_image_buffer_copy_layout
Reviewed-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16873>
---
src/amd/vulkan/radv_meta_copy.c | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)
diff --git a/src/amd/vulkan/radv_meta_copy.c b/src/amd/vulkan/radv_meta_copy.c
index 7a4364b5a67..dc5522a1840 100644
--- a/src/amd/vulkan/radv_meta_copy.c
+++ b/src/amd/vulkan/radv_meta_copy.c
@@ -122,11 +122,6 @@ copy_buffer_to_image(struct radv_cmd_buffer *cmd_buffer, struct radv_buffer *buf
* blocks - which is the highest resolution accessible in this command.
*/
const VkOffset3D img_offset_el = vk_image_offset_to_elements(&image->vk, region->imageOffset);
- const VkExtent3D bufferExtent = {
- .width = region->bufferRowLength ? region->bufferRowLength : region->imageExtent.width,
- .height = region->bufferImageHeight ? region->bufferImageHeight : region->imageExtent.height,
- };
- const VkExtent3D buf_extent_el = vk_image_extent_to_elements(&image->vk, bufferExtent);
/* Start creating blit rect */
const VkExtent3D img_extent_el = vk_image_extent_to_elements(&image->vk, region->imageExtent);
@@ -159,12 +154,13 @@ copy_buffer_to_image(struct radv_cmd_buffer *cmd_buffer, struct radv_buffer *buf
img_bsurf.format = vk_format_for_size(vk_format_get_blocksize(img_bsurf.format));
}
+ const struct vk_image_buffer_layout buf_layout = vk_image_buffer_copy_layout(&image->vk, region);
struct radv_meta_blit2d_buffer buf_bsurf = {
.bs = img_bsurf.bs,
.format = img_bsurf.format,
.buffer = buffer,
.offset = region->bufferOffset,
- .pitch = buf_extent_el.width,
+ .pitch = buf_layout.row_stride_B / buf_layout.element_size_B,
};
if (image->vk.image_type == VK_IMAGE_TYPE_3D)
@@ -191,7 +187,7 @@ copy_buffer_to_image(struct radv_cmd_buffer *cmd_buffer, struct radv_buffer *buf
* increment the offset directly in the image effectively
* re-binding it to different backing memory.
*/
- buf_bsurf.offset += buf_extent_el.width * buf_extent_el.height * buf_bsurf.bs;
+ buf_bsurf.offset += buf_layout.image_stride_B;
img_bsurf.layer++;
if (image->vk.image_type == VK_IMAGE_TYPE_3D)
slice_3d++;
More information about the mesa-commit
mailing list