C Specification
The VkCopyDeviceMemoryImageInfoKHR structure is defined as:
// Provided by VK_KHR_device_address_commands
typedef struct VkCopyDeviceMemoryImageInfoKHR {
VkStructureType sType;
const void* pNext;
VkImage image;
uint32_t regionCount;
const VkDeviceMemoryImageCopyKHR* pRegions;
} VkCopyDeviceMemoryImageInfoKHR;
Members
-
sTypeis a VkStructureType value identifying this structure. -
pNextisNULLor a pointer to a structure extending this structure. -
imageis the base image accessed by the copy command. -
regionCountis the number of copies to be performed. -
pRegionsis a pointer to an array of VkDeviceMemoryImageCopyKHR structures describing individual copy operations between two memory ranges.
Description
-
VUID-VkCopyDeviceMemoryImageInfoKHR-addressRange-13026
The range of memory backing the address range defined by theaddressRangemember of any element ofpRegionsmust not overlap the memory backing the address range defined by theaddressRangeof any other element ofpRegions -
VUID-VkCopyDeviceMemoryImageInfoKHR-addressRange-13027
The range of memory backing the address range defined by theaddressRangemember of any element ofpRegionsmust not overlap the memory backing any texels inimagedefined by theimageSubresource,imageOffset, andimageExtentmembers of any element ofpRegions -
VUID-VkCopyDeviceMemoryImageInfoKHR-imageLayout-13028
TheimageLayoutmember of each element ofpRegionsmust specify the layout of the image subresource specified for that element ofpRegionsat the time this command is executed on a VkDevice
-
VUID-VkCopyDeviceMemoryImageInfoKHR-image-07966
Ifimageis non-sparse then the image or each specified disjoint plane must be bound completely and contiguously to a singleVkDeviceMemoryobject -
VUID-VkCopyDeviceMemoryImageInfoKHR-imageSubresource-07967
TheimageSubresource.mipLevelmember of each element ofpRegionsmust be less than themipLevelsspecified in VkImageCreateInfo whenimagewas created -
VUID-VkCopyDeviceMemoryImageInfoKHR-imageSubresource-07968
IfimageSubresource.layerCountis not VK_REMAINING_ARRAY_LAYERS,imageSubresource.baseArrayLayer+imageSubresource.layerCountof each element ofpRegionsmust be less than or equal to thearrayLayersspecified in VkImageCreateInfo whenimagewas created -
VUID-VkCopyDeviceMemoryImageInfoKHR-image-07969
imagemust not have been created withflagscontaining VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
-
VUID-VkCopyDeviceMemoryImageInfoKHR-image-07973
imagemust have a sample count equal to VK_SAMPLE_COUNT_1_BIT
-
VUID-VkCopyDeviceMemoryImageInfoKHR-image-07979
Ifimageis of type VK_IMAGE_TYPE_1D, then for each element ofpRegions,imageOffset.ymust be0andimageExtent.heightmust be1 -
VUID-VkCopyDeviceMemoryImageInfoKHR-imageOffset-09104
For each element ofpRegions,imageOffset.zand (imageExtent.depth+imageOffset.z) must both be greater than or equal to0and less than or equal to the depth of the specifiedimageSubresourceofimage -
VUID-VkCopyDeviceMemoryImageInfoKHR-image-07980
Ifimageis of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element ofpRegions,imageOffset.zmust be0andimageExtent.depthmust be1 -
VUID-VkCopyDeviceMemoryImageInfoKHR-image-07274
For each element ofpRegions, if VkCopyCommandTransformInfoQCOM::transformis equal to VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR or VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR,imageOffset.xmust be a multiple of the texel block extent width of the VkFormat ofimage -
VUID-VkCopyDeviceMemoryImageInfoKHR-imageOffset-10051
For each element ofpRegions, if VkCopyCommandTransformInfoQCOM::transformis equal to VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR or VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, andimageOffset.xdoes not equal the width of the subresource specified byimageSubresource,imageOffset.xmust be a multiple of the texel block extent width of the VkFormat ofimage -
VUID-VkCopyDeviceMemoryImageInfoKHR-image-07275
For each element ofpRegions, if VkCopyCommandTransformInfoQCOM::transformis equal to VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR or VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR,imageOffset.ymust be a multiple of the texel block extent height of the VkFormat ofimage -
VUID-VkCopyDeviceMemoryImageInfoKHR-imageOffset-10052
For each element ofpRegions, if VkCopyCommandTransformInfoQCOM::transformis equal to VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR or VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, andimageOffset.ydoes not equal the height of the subresource specified byimageSubresource,imageOffset.ymust be a multiple of the texel block extent height of the VkFormat ofimage -
VUID-VkCopyDeviceMemoryImageInfoKHR-image-07276
For each element ofpRegions,imageOffset.zmust be a multiple of the texel block extent depth of the VkFormat ofimage -
VUID-VkCopyDeviceMemoryImageInfoKHR-image-00207
For each element ofpRegions, if VkCopyCommandTransformInfoQCOM::transformis equal to VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, the sum ofimageOffset.xandextent.widthdoes not equal the width of the subresource specified byimageSubresource,extent.widthmust be a multiple of the texel block extent width of the VkFormat ofimage -
VUID-VkCopyDeviceMemoryImageInfoKHR-imageOffset-10053
For each element ofpRegions, if VkCopyCommandTransformInfoQCOM::transformis equal to VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, the difference ofimageOffset.xandextent.heightmust be a multiple of the texel block extent width of the VkFormat ofimage -
VUID-VkCopyDeviceMemoryImageInfoKHR-imageOffset-10054
For each element ofpRegions, if VkCopyCommandTransformInfoQCOM::transformis equal to VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, the difference ofimageOffset.xandextent.widthmust be a multiple of the texel block extent width of the VkFormat ofimage -
VUID-VkCopyDeviceMemoryImageInfoKHR-imageOffset-10055
For each element ofpRegions, if VkCopyCommandTransformInfoQCOM::transformis equal to VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR, the sum ofimageOffset.xandextent.heightdoes not equal the width of the subresource specified byimageSubresource,extent.heightmust be a multiple of the texel block extent width of the VkFormat ofimage -
VUID-VkCopyDeviceMemoryImageInfoKHR-image-00208
For each element ofpRegions, if VkCopyCommandTransformInfoQCOM::transformis equal to VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, and the sum ofimageOffset.yandextent.heightdoes not equal the height of the subresource specified byimageSubresource,extent.heightmust be a multiple of the texel block extent height of the VkFormat ofimage -
VUID-VkCopyDeviceMemoryImageInfoKHR-imageOffset-10056
For each element ofpRegions, if VkCopyCommandTransformInfoQCOM::transformis equal to VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, the sum ofimageOffset.yandextent.widthdoes not equal the height of the subresource specified byimageSubresource,extent.widthmust be a multiple of the texel block extent height of the VkFormat ofimage -
VUID-VkCopyDeviceMemoryImageInfoKHR-imageOffset-10057
For each element ofpRegions, if VkCopyCommandTransformInfoQCOM::transformis equal to VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, the difference ofimageOffset.yandextent.heightmust be a multiple of the texel block extent height of the VkFormat ofimage -
VUID-VkCopyDeviceMemoryImageInfoKHR-imageOffset-10058
For each element ofpRegions, if VkCopyCommandTransformInfoQCOM::transformis equal to VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR, the difference ofimageOffset.yandextent.widthmust be a multiple of the texel block extent height of the VkFormat ofimage -
VUID-VkCopyDeviceMemoryImageInfoKHR-image-00209
For each element ofpRegions, if the sum ofimageOffset.zandextent.depthdoes not equal the depth of the subresource specified bysrcSubresource,extent.depthmust be a multiple of the texel block extent depth of the VkFormat ofimage -
VUID-VkCopyDeviceMemoryImageInfoKHR-imageSubresource-09105
For each element ofpRegions,imageSubresource.aspectMaskmust specify aspects present inimage -
VUID-VkCopyDeviceMemoryImageInfoKHR-image-07981
Ifimagehas a multi-planar format, then for each element ofpRegions,imageSubresource.aspectMaskmust be a single valid multi-planar aspect mask bit -
VUID-VkCopyDeviceMemoryImageInfoKHR-image-07983
Ifimageis of type VK_IMAGE_TYPE_3D, for each element ofpRegions,imageSubresource.baseArrayLayermust be0andimageSubresource.layerCountmust be1
-
VUID-VkCopyDeviceMemoryImageInfoKHR-addressRowLength-09106
For each element ofpRegions,addressRowLengthmust be a multiple of the texel block extent width of the VkFormat ofimage -
VUID-VkCopyDeviceMemoryImageInfoKHR-addressImageHeight-09107
For each element ofpRegions,addressImageHeightmust be a multiple of the texel block extent height of the VkFormat ofimage -
VUID-VkCopyDeviceMemoryImageInfoKHR-addressRowLength-09108
For each element ofpRegions,addressRowLengthdivided by the texel block extent width and then multiplied by the texel block size ofimagemust be less than or equal to 231-1 -
VUID-VkCopyDeviceMemoryImageInfoKHR-image-13029
Ifimagedoes not have either a depth/stencil format or a multi-planar format, then for each element ofpRegions,addressRange.addressmust be a multiple of the texel block size -
VUID-VkCopyDeviceMemoryImageInfoKHR-image-13030
Ifimagehas a multi-planar format, then for each element ofpRegions,addressRange.addressmust be a multiple of the element size of the compatible format for the format and theaspectMaskof theimageSubresourceas defined in https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#formats-compatible-planes -
VUID-VkCopyDeviceMemoryImageInfoKHR-image-13031
Ifimagehas a depth/stencil format, theaddressRange.addressmember of any element ofpRegionsmust be a multiple of4 -
VUID-VkCopyDeviceMemoryImageInfoKHR-pRegions-13032
The image region specified by each element ofpRegionsthat does not contain VkCopyCommandTransformInfoQCOM in itspNextchain must be contained within the specifiedimageSubresourceofimage -
VUID-VkCopyDeviceMemoryImageInfoKHR-pRegions-13033
If the image region specified by each element ofpRegionscontains VkCopyCommandTransformInfoQCOM in itspNextchain, the rotated image region must be contained withinimage -
VUID-VkCopyDeviceMemoryImageInfoKHR-pRegions-13034
If any element ofpRegionscontains VkCopyCommandTransformInfoQCOM in itspNextchain, thenimagemust have a 1x1x1 texel block extent -
VUID-VkCopyDeviceMemoryImageInfoKHR-pRegions-13035
If any element ofpRegionscontains VkCopyCommandTransformInfoQCOM in itspNextchain, thenimagemust be of type VK_IMAGE_TYPE_2D -
VUID-VkCopyDeviceMemoryImageInfoKHR-pRegions-13036
If any element ofpRegionscontains VkCopyCommandTransformInfoQCOM in itspNextchain, thenimagemust not have a multi-planar format
-
VUID-VkCopyDeviceMemoryImageInfoKHR-sType-sType
sTypemust be VK_STRUCTURE_TYPE_COPY_DEVICE_MEMORY_IMAGE_INFO_KHR -
VUID-VkCopyDeviceMemoryImageInfoKHR-pNext-pNext
pNextmust beNULL -
VUID-VkCopyDeviceMemoryImageInfoKHR-image-parameter
imagemust be a valid VkImage handle -
VUID-VkCopyDeviceMemoryImageInfoKHR-pRegions-parameter
pRegionsmust be a valid pointer to an array ofregionCountvalid VkDeviceMemoryImageCopyKHR structures -
VUID-VkCopyDeviceMemoryImageInfoKHR-regionCount-arraylength
regionCountmust be greater than0
Document Notes
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.