C Specification
The VkCopyImageToImageInfoEXT
structure is defined as:
// Provided by VK_EXT_host_image_copy
typedef struct VkCopyImageToImageInfoEXT {
VkStructureType sType;
const void* pNext;
VkHostImageCopyFlagsEXT flags;
VkImage srcImage;
VkImageLayout srcImageLayout;
VkImage dstImage;
VkImageLayout dstImageLayout;
uint32_t regionCount;
const VkImageCopy2* pRegions;
} VkCopyImageToImageInfoEXT;
Members
-
sType
is a VkStructureType value identifying this structure. -
pNext
isNULL
or a pointer to a structure extending this structure. -
flags
is a bitmask of VkHostImageCopyFlagBitsEXT values describing additional copy parameters. -
srcImage
is the source image. -
srcImageLayout
is the layout of the source image subresources for the copy. -
dstImage
is the destination image. -
dstImageLayout
is the layout of the destination image subresources for the copy. -
regionCount
is the number of regions to copy. -
pRegions
is a pointer to an array of VkImageCopy2 structures specifying the regions to copy.
Description
vkCopyImageToImageEXT
does not check whether the device memory
associated with srcImage
or dstImage
is currently in use before
performing the copy.
The application must guarantee that any previously submitted command that
writes to the copy regions has completed before the host performs the copy.
-
VUID-VkCopyImageToImageInfoEXT-srcImage-09109
IfsrcImage
is sparse then all memory ranges accessed by the copy command must be bound as described in Binding Resource Memory -
VUID-VkCopyImageToImageInfoEXT-srcImage-09111
If the stencil aspect ofsrcImage
is accessed, andsrcImage
was not created with separate stencil usage, the image must have been created withVK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT
set in VkImageCreateInfo::usage
-
VUID-VkCopyImageToImageInfoEXT-srcImage-09112
If the stencil aspect ofsrcImage
is accessed, andsrcImage
was created with separate stencil usage, the image must have been created withVK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT
set in VkImageStencilUsageCreateInfo::stencilUsage
-
VUID-VkCopyImageToImageInfoEXT-srcImage-09113
If non-stencil aspects ofsrcImage
are accessed, the image must have been created withVK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT
set in VkImageCreateInfo::usage
-
VUID-VkCopyImageToImageInfoEXT-srcOffset-09114
Ifflags
containsVK_HOST_IMAGE_COPY_MEMCPY_EXT
, thex
,y
, andz
members of thesrcOffset
member of each element ofpRegions
must be0
-
VUID-VkCopyImageToImageInfoEXT-srcImage-09115
Ifflags
containsVK_HOST_IMAGE_COPY_MEMCPY_EXT
, theextent
member of each element ofpRegions
must equal the extents ofsrcImage
identified bysrcSubresource
-
VUID-VkCopyImageToImageInfoEXT-srcImage-07966
IfsrcImage
is non-sparse then the image or the specified disjoint plane must be bound completely and contiguously to a singleVkDeviceMemory
object -
VUID-VkCopyImageToImageInfoEXT-srcSubresource-07967
ThesrcSubresource.mipLevel
member of each element ofpRegions
must be less than themipLevels
specified in VkImageCreateInfo whensrcImage
was created -
VUID-VkCopyImageToImageInfoEXT-srcSubresource-07968
ThesrcSubresource.baseArrayLayer
+srcSubresource.layerCount
of each element ofpRegions
, ifsrcSubresource.layerCount
is notVK_REMAINING_ARRAY_LAYERS
andmaintenance5
is not enabled, must be less than or equal to thearrayLayers
specified in VkImageCreateInfo whensrcImage
was created -
VUID-VkCopyImageToImageInfoEXT-srcImage-07969
srcImage
must not have been created withflags
containingVK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
-
VUID-VkCopyImageToImageInfoEXT-srcSubresource-07970
The image region specified by each element ofpRegions
must be contained within the specifiedsrcSubresource
ofsrcImage
-
VUID-VkCopyImageToImageInfoEXT-srcSubresource-07971
For each element ofpRegions
,srcOffset.x
and (extent.width
+srcOffset.x
) must both be greater than or equal to0
and less than or equal to the width of the specifiedsrcSubresource
ofsrcImage
-
VUID-VkCopyImageToImageInfoEXT-srcSubresource-07972
For each element ofpRegions
,srcOffset.y
and (extent.height
+srcOffset.y
) must both be greater than or equal to0
and less than or equal to the height of the specifiedsrcSubresource
ofsrcImage
-
VUID-VkCopyImageToImageInfoEXT-srcImage-07979
IfsrcImage
is of typeVK_IMAGE_TYPE_1D
, then for each element ofpRegions
,srcOffset.y
must be0
andextent.height
must be1
-
VUID-VkCopyImageToImageInfoEXT-srcOffset-09104
For each element ofpRegions
,srcOffset.z
and (extent.depth
+srcOffset.z
) must both be greater than or equal to0
and less than or equal to the depth of the specifiedsrcSubresource
ofsrcImage
-
VUID-VkCopyImageToImageInfoEXT-srcImage-07980
IfsrcImage
is of typeVK_IMAGE_TYPE_1D
orVK_IMAGE_TYPE_2D
, then for each element ofpRegions
,srcOffset.z
must be0
andextent.depth
must be1
-
VUID-VkCopyImageToImageInfoEXT-srcImage-07274
For each element ofpRegions
,srcOffset.x
must be a multiple of the texel block extent width of the VkFormat ofsrcImage
-
VUID-VkCopyImageToImageInfoEXT-srcImage-07275
For each element ofpRegions
,srcOffset.y
must be a multiple of the texel block extent height of the VkFormat ofsrcImage
-
VUID-VkCopyImageToImageInfoEXT-srcImage-07276
For each element ofpRegions
,srcOffset.z
must be a multiple of the texel block extent depth of the VkFormat ofsrcImage
-
VUID-VkCopyImageToImageInfoEXT-srcImage-00207
For each element ofpRegions
, if the sum ofsrcOffset.x
andextent.width
does not equal the width of the subresource specified bysrcSubresource
,extent.width
must be a multiple of the texel block extent width of the VkFormat ofsrcImage
-
VUID-VkCopyImageToImageInfoEXT-srcImage-00208
For each element ofpRegions
, if the sum ofsrcOffset.y
andextent.height
does not equal the height of the subresource specified bysrcSubresource
,extent.height
must be a multiple of the texel block extent height of the VkFormat ofsrcImage
-
VUID-VkCopyImageToImageInfoEXT-srcImage-00209
For each element ofpRegions
, if the sum ofsrcOffset.z
andextent.depth
does not equal the depth of the subresource specified bysrcSubresource
,extent.depth
must be a multiple of the texel block extent depth of the VkFormat ofsrcImage
-
VUID-VkCopyImageToImageInfoEXT-srcSubresource-09105
For each element ofpRegions
,srcSubresource.aspectMask
must specify aspects present insrcImage
-
VUID-VkCopyImageToImageInfoEXT-srcImage-07981
IfsrcImage
has a multi-planar image format, then for each element ofpRegions
,srcSubresource.aspectMask
must be a single valid multi-planar aspect mask bit -
VUID-VkCopyImageToImageInfoEXT-srcImage-07983
IfsrcImage
is of typeVK_IMAGE_TYPE_3D
, for each element ofpRegions
,srcSubresource.baseArrayLayer
must be0
andsrcSubresource.layerCount
must be1
-
VUID-VkCopyImageToImageInfoEXT-dstImage-09109
IfdstImage
is sparse then all memory ranges accessed by the copy command must be bound as described in Binding Resource Memory -
VUID-VkCopyImageToImageInfoEXT-dstImage-09111
If the stencil aspect ofdstImage
is accessed, anddstImage
was not created with separate stencil usage, the image must have been created withVK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT
set in VkImageCreateInfo::usage
-
VUID-VkCopyImageToImageInfoEXT-dstImage-09112
If the stencil aspect ofdstImage
is accessed, anddstImage
was created with separate stencil usage, the image must have been created withVK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT
set in VkImageStencilUsageCreateInfo::stencilUsage
-
VUID-VkCopyImageToImageInfoEXT-dstImage-09113
If non-stencil aspects ofdstImage
are accessed, the image must have been created withVK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT
set in VkImageCreateInfo::usage
-
VUID-VkCopyImageToImageInfoEXT-dstOffset-09114
Ifflags
containsVK_HOST_IMAGE_COPY_MEMCPY_EXT
, thex
,y
, andz
members of thedstOffset
member of each element ofpRegions
must be0
-
VUID-VkCopyImageToImageInfoEXT-dstImage-09115
Ifflags
containsVK_HOST_IMAGE_COPY_MEMCPY_EXT
, theextent
member of each element ofpRegions
must equal the extents ofdstImage
identified bydstSubresource
-
VUID-VkCopyImageToImageInfoEXT-dstImage-07966
IfdstImage
is non-sparse then the image or the specified disjoint plane must be bound completely and contiguously to a singleVkDeviceMemory
object -
VUID-VkCopyImageToImageInfoEXT-dstSubresource-07967
ThedstSubresource.mipLevel
member of each element ofpRegions
must be less than themipLevels
specified in VkImageCreateInfo whendstImage
was created -
VUID-VkCopyImageToImageInfoEXT-dstSubresource-07968
ThedstSubresource.baseArrayLayer
+dstSubresource.layerCount
of each element ofpRegions
, ifdstSubresource.layerCount
is notVK_REMAINING_ARRAY_LAYERS
andmaintenance5
is not enabled, must be less than or equal to thearrayLayers
specified in VkImageCreateInfo whendstImage
was created -
VUID-VkCopyImageToImageInfoEXT-dstImage-07969
dstImage
must not have been created withflags
containingVK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
-
VUID-VkCopyImageToImageInfoEXT-dstSubresource-07970
The image region specified by each element ofpRegions
must be contained within the specifieddstSubresource
ofdstImage
-
VUID-VkCopyImageToImageInfoEXT-dstSubresource-07971
For each element ofpRegions
,dstOffset.x
and (extent.width
+dstOffset.x
) must both be greater than or equal to0
and less than or equal to the width of the specifieddstSubresource
ofdstImage
-
VUID-VkCopyImageToImageInfoEXT-dstSubresource-07972
For each element ofpRegions
,dstOffset.y
and (extent.height
+dstOffset.y
) must both be greater than or equal to0
and less than or equal to the height of the specifieddstSubresource
ofdstImage
-
VUID-VkCopyImageToImageInfoEXT-dstImage-07979
IfdstImage
is of typeVK_IMAGE_TYPE_1D
, then for each element ofpRegions
,dstOffset.y
must be0
andextent.height
must be1
-
VUID-VkCopyImageToImageInfoEXT-dstOffset-09104
For each element ofpRegions
,dstOffset.z
and (extent.depth
+dstOffset.z
) must both be greater than or equal to0
and less than or equal to the depth of the specifieddstSubresource
ofdstImage
-
VUID-VkCopyImageToImageInfoEXT-dstImage-07980
IfdstImage
is of typeVK_IMAGE_TYPE_1D
orVK_IMAGE_TYPE_2D
, then for each element ofpRegions
,dstOffset.z
must be0
andextent.depth
must be1
-
VUID-VkCopyImageToImageInfoEXT-dstImage-07274
For each element ofpRegions
,dstOffset.x
must be a multiple of the texel block extent width of the VkFormat ofdstImage
-
VUID-VkCopyImageToImageInfoEXT-dstImage-07275
For each element ofpRegions
,dstOffset.y
must be a multiple of the texel block extent height of the VkFormat ofdstImage
-
VUID-VkCopyImageToImageInfoEXT-dstImage-07276
For each element ofpRegions
,dstOffset.z
must be a multiple of the texel block extent depth of the VkFormat ofdstImage
-
VUID-VkCopyImageToImageInfoEXT-dstImage-00207
For each element ofpRegions
, if the sum ofdstOffset.x
andextent.width
does not equal the width of the subresource specified bysrcSubresource
,extent.width
must be a multiple of the texel block extent width of the VkFormat ofdstImage
-
VUID-VkCopyImageToImageInfoEXT-dstImage-00208
For each element ofpRegions
, if the sum ofdstOffset.y
andextent.height
does not equal the height of the subresource specified bysrcSubresource
,extent.height
must be a multiple of the texel block extent height of the VkFormat ofdstImage
-
VUID-VkCopyImageToImageInfoEXT-dstImage-00209
For each element ofpRegions
, if the sum ofdstOffset.z
andextent.depth
does not equal the depth of the subresource specified bysrcSubresource
,extent.depth
must be a multiple of the texel block extent depth of the VkFormat ofdstImage
-
VUID-VkCopyImageToImageInfoEXT-dstSubresource-09105
For each element ofpRegions
,dstSubresource.aspectMask
must specify aspects present indstImage
-
VUID-VkCopyImageToImageInfoEXT-dstImage-07981
IfdstImage
has a multi-planar image format, then for each element ofpRegions
,dstSubresource.aspectMask
must be a single valid multi-planar aspect mask bit -
VUID-VkCopyImageToImageInfoEXT-dstImage-07983
IfdstImage
is of typeVK_IMAGE_TYPE_3D
, for each element ofpRegions
,dstSubresource.baseArrayLayer
must be0
anddstSubresource.layerCount
must be1
-
VUID-VkCopyImageToImageInfoEXT-srcImageLayout-09070
srcImageLayout
must specify the current layout of the image subresources ofsrcImage
specified inpRegions
-
VUID-VkCopyImageToImageInfoEXT-dstImageLayout-09071
dstImageLayout
must specify the current layout of the image subresources ofdstImage
specified inpRegions
-
VUID-VkCopyImageToImageInfoEXT-srcImageLayout-09072
srcImageLayout
must be one of the image layouts returned in VkPhysicalDeviceHostImageCopyPropertiesEXT::pCopySrcLayouts
-
VUID-VkCopyImageToImageInfoEXT-dstImageLayout-09073
dstImageLayout
must be one of the image layouts returned in VkPhysicalDeviceHostImageCopyPropertiesEXT::pCopyDstLayouts
-
VUID-VkCopyImageToImageInfoEXT-sType-sType
sType
must beVK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT
-
VUID-VkCopyImageToImageInfoEXT-pNext-pNext
pNext
must beNULL
-
VUID-VkCopyImageToImageInfoEXT-flags-parameter
flags
must be a valid combination of VkHostImageCopyFlagBitsEXT values -
VUID-VkCopyImageToImageInfoEXT-srcImage-parameter
srcImage
must be a valid VkImage handle -
VUID-VkCopyImageToImageInfoEXT-srcImageLayout-parameter
srcImageLayout
must be a valid VkImageLayout value -
VUID-VkCopyImageToImageInfoEXT-dstImage-parameter
dstImage
must be a valid VkImage handle -
VUID-VkCopyImageToImageInfoEXT-dstImageLayout-parameter
dstImageLayout
must be a valid VkImageLayout value -
VUID-VkCopyImageToImageInfoEXT-pRegions-parameter
pRegions
must be a valid pointer to an array ofregionCount
valid VkImageCopy2 structures -
VUID-VkCopyImageToImageInfoEXT-regionCount-arraylength
regionCount
must be greater than0
-
VUID-VkCopyImageToImageInfoEXT-commonparent
Both ofdstImage
, andsrcImage
must have been created, allocated, or retrieved from the same VkDevice
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.