vkCmdCopyImageToBuffer2
To copy data from an image object to a buffer object, call:
void vkCmdCopyImageToBuffer2KHR(
VkCommandBuffer commandBuffer,
const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
commandBuffer
is the command buffer into which the command will be recorded.pCopyImageToBufferInfo
is a pointer to a VkCopyImageToBufferInfo2 structure describing the copy parameters.
This command is functionally identical to vkCmdCopyImageToBuffer, but
includes extensible sub-structures that include sType
and pNext
parameters, allowing them to be more easily extended.
Valid Usage
VUID-vkCmdCopyImageToBuffer2-commandBuffer-07746
If the queue family used to create the VkCommandPool which
commandBuffer
was allocated from does not support
VK_QUEUE_GRAPHICS_BIT
or VK_QUEUE_COMPUTE_BIT
, the
bufferOffset
member of any element of pCopyImageToBufferInfo→pRegions
must be a
multiple of 4
VUID-vkCmdCopyImageToBuffer2-imageOffset-07747
The imageOffset
and imageExtent
members of each element of
pCopyImageToBufferInfo→pRegions
must respect the image transfer granularity requirements
of commandBuffer
’s command pool’s queue family, as described in
VkQueueFamilyProperties
Valid Usage (Implicit)
VUID-vkCmdCopyImageToBuffer2-commandBuffer-parameter
commandBuffer
must be a valid VkCommandBuffer handle
VUID-vkCmdCopyImageToBuffer2-pCopyImageToBufferInfo-parameter
pCopyImageToBufferInfo
must be a valid pointer to a valid VkCopyImageToBufferInfo2 structure
VUID-vkCmdCopyImageToBuffer2-commandBuffer-recording
commandBuffer
must be in the recording state
VUID-vkCmdCopyImageToBuffer2-commandBuffer-cmdpool
The VkCommandPool
that commandBuffer
was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdCopyImageToBuffer2-renderpass
This command must only be called outside of a render pass instance
VUID-vkCmdCopyImageToBuffer2-videocoding
This command must only be called outside of a video coding scope
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized - Host access to the
VkCommandPool
thatcommandBuffer
was allocated from must be externally synchronized ::