mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 15:38:09 +02:00
anv: Add helper to copy data from src to dest anv_address
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31588>
This commit is contained in:
parent
41baeb3810
commit
5561db68c3
2 changed files with 41 additions and 0 deletions
|
|
@ -1069,6 +1069,42 @@ copy_buffer(struct anv_device *device,
|
|||
blorp_buffer_copy(batch, src, dst, region->size);
|
||||
}
|
||||
|
||||
void
|
||||
anv_cmd_copy_addr(struct anv_cmd_buffer *cmd_buffer,
|
||||
struct anv_address src_addr,
|
||||
struct anv_address dst_addr,
|
||||
uint64_t size)
|
||||
{
|
||||
struct anv_device *device = cmd_buffer->device;
|
||||
|
||||
struct blorp_batch batch;
|
||||
anv_blorp_batch_init(cmd_buffer, &batch,
|
||||
cmd_buffer->state.current_pipeline ==
|
||||
cmd_buffer->device->physical->gpgpu_pipeline_value ?
|
||||
BLORP_BATCH_USE_COMPUTE : 0);
|
||||
|
||||
struct blorp_address src = {
|
||||
.buffer = src_addr.bo,
|
||||
.offset = src_addr.offset,
|
||||
.mocs = anv_mocs(device, src_addr.bo,
|
||||
blorp_batch_isl_copy_usage(&batch, false /* is_dest */,
|
||||
false)),
|
||||
};
|
||||
|
||||
struct blorp_address dst = {
|
||||
.buffer = dst_addr.bo,
|
||||
.offset = dst_addr.offset,
|
||||
.mocs = anv_mocs(device, dst_addr.bo,
|
||||
blorp_batch_isl_copy_usage(&batch, true /* is_dest */,
|
||||
false)),
|
||||
};
|
||||
|
||||
blorp_buffer_copy(&batch, src, dst, size);
|
||||
|
||||
anv_add_buffer_write_pending_bits(cmd_buffer, "after copy buffer");
|
||||
anv_blorp_batch_finish(&batch);
|
||||
}
|
||||
|
||||
void anv_CmdCopyBuffer2(
|
||||
VkCommandBuffer commandBuffer,
|
||||
const VkCopyBufferInfo2* pCopyBufferInfo)
|
||||
|
|
|
|||
|
|
@ -5902,6 +5902,11 @@ anv_image_choose_isl_surf_usage(struct anv_physical_device *device,
|
|||
VkImageCompressionFlagsEXT comp_flags);
|
||||
|
||||
void
|
||||
anv_cmd_copy_addr(struct anv_cmd_buffer *cmd_buffer,
|
||||
struct anv_address src_addr,
|
||||
struct anv_address dst_addr,
|
||||
uint64_t size);
|
||||
void
|
||||
anv_cmd_buffer_fill_area(struct anv_cmd_buffer *cmd_buffer,
|
||||
struct anv_address address,
|
||||
VkDeviceSize size,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue