vkCmdCopyMemoryToImageIndirectKHR
To copy data from a memory region to an image object by specifying copy parameters in memory, call:
void vkCmdCopyMemoryToImageIndirectKHR(
VkCommandBuffer commandBuffer,
const VkCopyMemoryToImageIndirectInfoKHR* pCopyMemoryToImageIndirectInfo);
pub fn cmd_copy_memory_to_image_indirect_khr(
command_buffer: vk::CommandBuffer,
p_copy_memory_to_image_indirect_info: *const vk::CopyMemoryToImageIndirectInfoKHR,
);
commandBufferis the command buffer into which the command will be recorded.pCopyMemoryToImageIndirectInfois a pointer to a VkCopyMemoryToImageIndirectInfoKHR structure which contains the copy parameters, including the number of copies to execute and a strided array of VkCopyMemoryToImageIndirectCommandKHR structures.
Each region specified in the memory referenced by
pCopyMemoryToImageIndirectInfo→copyAddressRange is copied from the
source region to an image region in the destination image.
If the destination image is of type VK_IMAGE_TYPE_3D, the starting
slice and number of slices to copy are specified in
pImageSubresources→baseArrayLayer and
pImageSubresources→layerCount respectively as imageOffset and
imageExtent from VkCopyMemoryToImageIndirectCommandKHR are only
available at device execution time.
The results are undefined if any of the source and destination regions
overlap in memory.
Valid Usage
VUID-vkCmdCopyMemoryToImageIndirectKHR-indirectMemoryToImageCopy-10947
The indirectMemoryToImageCopy feature must be enabled
VUID-vkCmdCopyMemoryToImageIndirectKHR-commandBuffer-10948
The VkCommandPool that commandBuffer was allocated from
must support at least one of the queue types specified in
VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR::supportedQueues
VUID-vkCmdCopyMemoryToImageIndirectKHR-commandBuffer-10949
commandBuffer must not be a protected command buffer
Valid Usage (Implicit)
VUID-vkCmdCopyMemoryToImageIndirectKHR-commandBuffer-parameter
commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyMemoryToImageIndirectKHR-pCopyMemoryToImageIndirectInfo-parameter
pCopyMemoryToImageIndirectInfo must be a valid pointer to a valid VkCopyMemoryToImageIndirectInfoKHR structure
VUID-vkCmdCopyMemoryToImageIndirectKHR-commandBuffer-recording
commandBuffer must be in the recording state
VUID-vkCmdCopyMemoryToImageIndirectKHR-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-vkCmdCopyMemoryToImageIndirectKHR-renderpass
This command must only be called outside of a render pass instance
VUID-vkCmdCopyMemoryToImageIndirectKHR-suspended
This command must not be called between suspended render pass instances
VUID-vkCmdCopyMemoryToImageIndirectKHR-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