Structures
VkBufferImageCopy
Structure specifying a buffer image copy operation
For both vkCmdCopyBufferToImage and vkCmdCopyImageToBuffer, each
element of pRegions is a structure defined as:
typedef struct VkBufferImageCopy {
VkDeviceSize bufferOffset;
uint32_t bufferRowLength;
uint32_t bufferImageHeight;
VkImageSubresourceLayers imageSubresource;
VkOffset3D imageOffset;
VkExtent3D imageExtent;
} VkBufferImageCopy;
bufferOffsetis the offset in bytes from the start of the buffer object where the image data is copied from or to.bufferRowLengthandbufferImageHeightspecify in texels a subregion of a larger two- or three-dimensional image in buffer memory, and control the addressing calculations. If either of these values is zero, that aspect of the buffer memory is considered to be tightly packed according to theimageExtent.imageSubresourceis a VkImageSubresourceLayers used to specify the specific image subresources of the image used for the source or destination image data.imageOffsetselects the initialx,y,zoffsets in texels of the sub-region of the source or destination image data.imageExtentis the size in texels of the image to copy inwidth,heightanddepth.
Valid Usage
VUID-VkBufferImageCopy-bufferRowLength-09101
bufferRowLength must be 0, or greater than or equal to the
width member of imageExtent
VUID-VkBufferImageCopy-bufferImageHeight-09102
bufferImageHeight must be 0, or greater than or equal to the
height member of imageExtent
VUID-VkBufferImageCopy-aspectMask-09103
The aspectMask member of imageSubresource must only have a
single bit set
VUID-VkBufferImageCopy-imageExtent-06659
imageExtent.width must not be 0
VUID-VkBufferImageCopy-imageExtent-06660
imageExtent.height must not be 0
VUID-VkBufferImageCopy-imageExtent-06661
imageExtent.depth must not be 0
Valid Usage (Implicit)
VUID-VkBufferImageCopy-imageSubresource-parameter
imageSubresource must be a valid VkImageSubresourceLayers structure