From aa6c8b8953ba41df8e1cfd43eaf96b0efac98166 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timur=20Krist=C3=B3f?= Date: Thu, 22 Feb 2024 17:14:38 +0100 Subject: [PATCH] radv: Add layout argument to transfer_copy_buffer_image. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This argument will be used with gang submit. Signed-off-by: Timur Kristóf Reviewed-by: Konstantin Seurer Reviewed-by: Samuel Pitoiset Part-of: --- src/amd/vulkan/meta/radv_meta_copy.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/amd/vulkan/meta/radv_meta_copy.c b/src/amd/vulkan/meta/radv_meta_copy.c index fad8ef1859f..36455946ab1 100644 --- a/src/amd/vulkan/meta/radv_meta_copy.c +++ b/src/amd/vulkan/meta/radv_meta_copy.c @@ -75,7 +75,8 @@ alloc_transfer_temp_bo(struct radv_cmd_buffer *cmd_buffer) } static void -transfer_copy_memory_image(struct radv_cmd_buffer *cmd_buffer, uint64_t buffer_va, struct radv_image *image, +transfer_copy_memory_image(struct radv_cmd_buffer *cmd_buffer, uint64_t buffer_va, uint64_t buffer_size, + enum radv_copy_flags buffer_flags, struct radv_image *image, const VkImageLayout layout, const VkBufferImageCopy2 *region, bool to_image) { const struct radv_device *device = radv_cmd_buffer_device(cmd_buffer); @@ -232,7 +233,8 @@ radv_CmdCopyBufferToImage2(VkCommandBuffer commandBuffer, const VkCopyBufferToIm radv_cs_add_buffer(device->ws, cs->b, dst_image->bindings[bind_idx].bo); if (cmd_buffer->qf == RADV_QUEUE_TRANSFER) { - transfer_copy_memory_image(cmd_buffer, src_buffer->vk.device_address, dst_image, region, true); + transfer_copy_memory_image(cmd_buffer, src_buffer->vk.device_address, src_buffer->vk.size, src_copy_flags, + dst_image, pCopyBufferToImageInfo->dstImageLayout, region, true); } else { const bool use_compute = cmd_buffer->qf == RADV_QUEUE_COMPUTE || !radv_image_is_renderable(device, dst_image); gfx_or_compute_copy_memory_to_image(cmd_buffer, src_buffer->vk.device_address, src_buffer->vk.size, @@ -377,7 +379,8 @@ radv_CmdCopyImageToBuffer2(VkCommandBuffer commandBuffer, const VkCopyImageToBuf radv_cs_add_buffer(device->ws, cs->b, src_image->bindings[bind_idx].bo); if (cmd_buffer->qf == RADV_QUEUE_TRANSFER) { - transfer_copy_memory_image(cmd_buffer, dst_buffer->vk.device_address, src_image, region, false); + transfer_copy_memory_image(cmd_buffer, dst_buffer->vk.device_address, dst_buffer->vk.size, dst_copy_flags, + src_image, pCopyImageToBufferInfo->srcImageLayout, region, false); } else { compute_copy_image_to_memory(cmd_buffer, dst_buffer->vk.device_address, dst_buffer->vk.size, dst_copy_flags, src_image, pCopyImageToBufferInfo->srcImageLayout, region);