diff --git a/src/amd/vulkan/meta/radv_meta.h b/src/amd/vulkan/meta/radv_meta.h index d9989a4e8cd..72cdc4f6686 100644 --- a/src/amd/vulkan/meta/radv_meta.h +++ b/src/amd/vulkan/meta/radv_meta.h @@ -267,6 +267,8 @@ uint32_t radv_fill_buffer(struct radv_cmd_buffer *cmd_buffer, const struct radv_ void radv_copy_buffer(struct radv_cmd_buffer *cmd_buffer, struct radeon_winsys_bo *src_bo, struct radeon_winsys_bo *dst_bo, uint64_t src_offset, uint64_t dst_offset, uint64_t size); +void radv_copy_memory(struct radv_cmd_buffer *cmd_buffer, uint64_t src_va, uint64_t dst_va, uint64_t size); + void radv_cmd_buffer_clear_attachment(struct radv_cmd_buffer *cmd_buffer, const VkClearAttachment *attachment); void radv_cmd_buffer_clear_rendering(struct radv_cmd_buffer *cmd_buffer, const VkRenderingInfo *render_info); diff --git a/src/amd/vulkan/meta/radv_meta_buffer.c b/src/amd/vulkan/meta/radv_meta_buffer.c index a3390fe476d..047700f52a7 100644 --- a/src/amd/vulkan/meta/radv_meta_buffer.c +++ b/src/amd/vulkan/meta/radv_meta_buffer.c @@ -248,7 +248,7 @@ radv_CmdFillBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSi cmd_buffer->state.predicating = old_predicating; } -static void +void radv_copy_memory(struct radv_cmd_buffer *cmd_buffer, uint64_t src_va, uint64_t dst_va, uint64_t size) { struct radv_device *device = radv_cmd_buffer_device(cmd_buffer); diff --git a/src/amd/vulkan/meta/radv_meta_bufimage.c b/src/amd/vulkan/meta/radv_meta_bufimage.c index 6d416e90633..58db1d115fc 100644 --- a/src/amd/vulkan/meta/radv_meta_bufimage.c +++ b/src/amd/vulkan/meta/radv_meta_bufimage.c @@ -666,15 +666,14 @@ fixup_gfx9_cs_copy(struct radv_cmd_buffer *cmd_buffer, const struct radv_meta_bl uint64_t addr = ac_surface_addr_from_coord(pdev->addrlib, gpu_info, surf, &surf_info, mip_level, coordX, coordY, img_bsurf->layer, image->vk.image_type == VK_IMAGE_TYPE_3D); struct radeon_winsys_bo *img_bo = image->bindings[0].bo; - struct radeon_winsys_bo *mem_bo = buf_bsurf->buffer->bo; const uint64_t img_va = radv_buffer_get_va(img_bo) + image->bindings[0].offset + addr; /* buf_bsurf->offset already includes the layer offset */ const uint64_t mem_va = buf_bsurf->buffer->addr + buf_bsurf->offset + y * buf_bsurf->pitch * surf->bpe + x * surf->bpe; if (to_image) { - radv_copy_buffer(cmd_buffer, mem_bo, img_bo, mem_va, img_va, surf->bpe); + radv_copy_memory(cmd_buffer, mem_va, img_va, surf->bpe); } else { - radv_copy_buffer(cmd_buffer, img_bo, mem_bo, img_va, mem_va, surf->bpe); + radv_copy_memory(cmd_buffer, img_va, mem_va, surf->bpe); } } }