vkCmdCopyMemoryIndirectKHR
To copy data between two memory regions by specifying copy parameters indirectly in memory, call:
void vkCmdCopyMemoryIndirectKHR(
VkCommandBuffer commandBuffer,
const VkCopyMemoryIndirectInfoKHR* pCopyMemoryIndirectInfo);
pub fn cmd_copy_memory_indirect_khr(
command_buffer: vk::CommandBuffer,
p_copy_memory_indirect_info: *const vk::CopyMemoryIndirectInfoKHR,
);
commandBufferis the command buffer into which the command will be recorded.pCopyMemoryIndirectInfois a pointer to a VkCopyMemoryIndirectInfoKHR structure containing the copy parameters, including the number of copies to execute and a strided array of VkCopyMemoryIndirectCommandKHR structures.
Each region specified in the memory referenced by
pCopyMemoryIndirectInfo→copyAddressRange is copied from the source
region to the specified destination region.
The results are undefined if any of the source and destination regions
overlap in memory.
Valid Usage
VUID-vkCmdCopyMemoryIndirectKHR-indirectMemoryCopy-10935
The indirectMemoryCopy feature
must be enabled
VUID-vkCmdCopyMemoryIndirectKHR-commandBuffer-10936
The VkCommandPool that commandBuffer was allocated from
must support at least one of the queue types specified in
VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR::supportedQueues
VUID-vkCmdCopyMemoryIndirectKHR-commandBuffer-10937
commandBuffer must not be a protected command buffer
Valid Usage (Implicit)
VUID-vkCmdCopyMemoryIndirectKHR-commandBuffer-parameter
commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyMemoryIndirectKHR-pCopyMemoryIndirectInfo-parameter
pCopyMemoryIndirectInfo must be a valid pointer to a valid VkCopyMemoryIndirectInfoKHR structure
VUID-vkCmdCopyMemoryIndirectKHR-commandBuffer-recording
commandBuffer must be in the recording state
VUID-vkCmdCopyMemoryIndirectKHR-commandBuffer-cmdpool
The VkCommandPool that commandBuffer was allocated from must support VK_QUEUE_COMPUTE_BIT, VK_QUEUE_GRAPHICS_BIT, or VK_QUEUE_TRANSFER_BIT operations
VUID-vkCmdCopyMemoryIndirectKHR-renderpass
This command must only be called outside of a render pass instance
VUID-vkCmdCopyMemoryIndirectKHR-suspended
This command must not be called between suspended render pass instances
VUID-vkCmdCopyMemoryIndirectKHR-videocoding
This command must only be called outside of a video coding scope
Host Synchronization
- Host access to
commandBuffermust be externally synchronized - Host access to the
VkCommandPoolthatcommandBufferwas allocated from must be externally synchronized