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;
bufferOffset
is the offset in bytes from the start of the buffer object where the image data is copied from or to.bufferRowLength
andbufferImageHeight
specify 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
.imageSubresource
is a VkImageSubresourceLayers used to specify the specific image subresources of the image used for the source or destination image data.imageOffset
selects the initialx
,y
,z
offsets in texels of the sub-region of the source or destination image data.imageExtent
is the size in texels of the image to copy inwidth
,height
anddepth
.
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