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

Author: Timur Kristóf <[email protected]>
Date:   Fri Oct 13 23:17:45 2023 +0200

radv: Implement buffer copies on transfer queues.

Signed-off-by: Timur Kristóf <[email protected]>
Reviewed-by: Samuel Pitoiset <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26580>

---

 src/amd/vulkan/meta/radv_meta_buffer.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/amd/vulkan/meta/radv_meta_buffer.c 
b/src/amd/vulkan/meta/radv_meta_buffer.c
index 20e380fbd71..ded653770b1 100644
--- a/src/amd/vulkan/meta/radv_meta_buffer.c
+++ b/src/amd/vulkan/meta/radv_meta_buffer.c
@@ -264,7 +264,9 @@ radv_copy_buffer(struct radv_cmd_buffer *cmd_buffer, struct 
radeon_winsys_bo *sr
    radv_cs_add_buffer(cmd_buffer->device->ws, cmd_buffer->cs, src_bo);
    radv_cs_add_buffer(cmd_buffer->device->ws, cmd_buffer->cs, dst_bo);
 
-   if (use_compute)
+   if (cmd_buffer->qf == RADV_QUEUE_TRANSFER)
+      radv_sdma_copy_buffer(cmd_buffer->device, cmd_buffer->cs, src_va, 
dst_va, size);
+   else if (use_compute)
       copy_buffer_shader(cmd_buffer, src_va, dst_va, size);
    else if (size)
       si_cp_dma_buffer_copy(cmd_buffer, src_va, dst_va, size);

Reply via email to