radv/meta: use radv_copy_memory() instead of radv_copy_buffer()
To remove the buffer dependency. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33526>
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user