To copy data from an image object to a buffer object, call:
// Provided by VK_VERSION_1_0 void vkCmdCopyImageToBuffer( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
commandBufferis the command buffer into which the command will be recorded.
srcImageis the source image.
srcImageLayoutis the layout of the source image subresources for the copy.
dstBufferis the destination buffer.
regionCountis the number of regions to copy.
pRegionsis a pointer to an array of VkBufferImageCopy structures specifying the regions to copy.
Each region in
pRegions is copied from the specified region of the
source image to the specified region of the destination buffer.
srcImage has a multi-planar format, regions of each plane to be a source of a copy must
be specified separately using the
pRegions member of the
In this case, the
imageSubresource must be
For the purposes of
vkCmdCopyBufferToImage, each plane of a
multi-planar image is treated as having the format listed in
https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatible-planes for the plane identified by the
aspectMask of the corresponding subresource.
This applies both to VkFormat and to coordinates used in the copy,
which correspond to texels in the plane rather than how these texels map
to coordinates in the image as a whole.
For more information, see the Vulkan Specification
This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.