C Specification
The VkBlitImageInfo2 structure is defined as:
// Provided by VK_VERSION_1_3
typedef struct VkBlitImageInfo2 {
VkStructureType sType;
const void* pNext;
VkImage srcImage;
VkImageLayout srcImageLayout;
VkImage dstImage;
VkImageLayout dstImageLayout;
uint32_t regionCount;
const VkImageBlit2* pRegions;
VkFilter filter;
} VkBlitImageInfo2;
or the equivalent
// Provided by VK_KHR_copy_commands2
typedef VkBlitImageInfo2 VkBlitImageInfo2KHR;
Members
-
sTypeis a VkStructureType value identifying this structure. -
pNextisNULLor a pointer to a structure extending this structure. -
srcImageis the source image. -
srcImageLayoutis the layout of the source image subresources for the blit. -
dstImageis the destination image. -
dstImageLayoutis the layout of the destination image subresources for the blit. -
regionCountis the number of regions to blit. -
pRegionsis a pointer to an array of VkImageBlit2 structures specifying the regions to blit. -
filteris a VkFilter specifying the filter to apply if the blits require scaling.
Description
-
VUID-VkBlitImageInfo2-pRegions-00215
The source region specified by each element ofpRegionsmust be a region that is contained withinsrcImage -
VUID-VkBlitImageInfo2-pRegions-00216
The destination region specified by each element ofpRegionsmust be a region that is contained withindstImage -
VUID-VkBlitImageInfo2-pRegions-00217
The union of all destination regions, specified by the elements ofpRegions, must not overlap in memory with any texel that may be sampled during the blit operation -
VUID-VkBlitImageInfo2-srcImage-01999
The format features ofsrcImagemust containVK_FORMAT_FEATURE_BLIT_SRC_BIT -
VUID-VkBlitImageInfo2-srcImage-06421
srcImagemust not use a format that requires a sampler Y′CBCR conversion -
VUID-VkBlitImageInfo2-srcImage-00219
srcImagemust have been created withVK_IMAGE_USAGE_TRANSFER_SRC_BITusage flag -
VUID-VkBlitImageInfo2-srcImage-00220
IfsrcImageis non-sparse then it must be bound completely and contiguously to a singleVkDeviceMemoryobject -
VUID-VkBlitImageInfo2-srcImageLayout-00221
srcImageLayoutmust specify the layout of the image subresources ofsrcImagespecified inpRegionsat the time this command is executed on aVkDevice -
VUID-VkBlitImageInfo2-srcImageLayout-01398
srcImageLayoutmust beVK_IMAGE_LAYOUT_SHARED_PRESENT_KHR,VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMALorVK_IMAGE_LAYOUT_GENERAL -
VUID-VkBlitImageInfo2-srcImage-09459
IfsrcImageanddstImageare the same, and an elements ofpRegionscontains thesrcSubresourceanddstSubresourcewith matchingmipLeveland overlapping array layers, then thesrcImageLayoutanddstImageLayoutmust beVK_IMAGE_LAYOUT_GENERALorVK_IMAGE_LAYOUT_SHARED_PRESENT_KHR -
VUID-VkBlitImageInfo2-dstImage-02000
The format features ofdstImagemust containVK_FORMAT_FEATURE_BLIT_DST_BIT -
VUID-VkBlitImageInfo2-dstImage-06422
dstImagemust not use a format that requires a sampler Y′CBCR conversion -
VUID-VkBlitImageInfo2-dstImage-00224
dstImagemust have been created withVK_IMAGE_USAGE_TRANSFER_DST_BITusage flag -
VUID-VkBlitImageInfo2-dstImage-00225
IfdstImageis non-sparse then it must be bound completely and contiguously to a singleVkDeviceMemoryobject -
VUID-VkBlitImageInfo2-dstImageLayout-00226
dstImageLayoutmust specify the layout of the image subresources ofdstImagespecified inpRegionsat the time this command is executed on aVkDevice -
VUID-VkBlitImageInfo2-dstImageLayout-01399
dstImageLayoutmust beVK_IMAGE_LAYOUT_SHARED_PRESENT_KHR,VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMALorVK_IMAGE_LAYOUT_GENERAL -
VUID-VkBlitImageInfo2-srcImage-00229
If either ofsrcImageordstImagewas created with a signed integer VkFormat, the other must also have been created with a signed integer VkFormat -
VUID-VkBlitImageInfo2-srcImage-00230
If either ofsrcImageordstImagewas created with an unsigned integer VkFormat, the other must also have been created with an unsigned integer VkFormat -
VUID-VkBlitImageInfo2-srcImage-00231
If either ofsrcImageordstImagewas created with a depth/stencil format, the other must have exactly the same format -
VUID-VkBlitImageInfo2-srcImage-00232
IfsrcImagewas created with a depth/stencil format,filtermust beVK_FILTER_NEAREST -
VUID-VkBlitImageInfo2-srcImage-00233
srcImagemust have been created with asamplesvalue ofVK_SAMPLE_COUNT_1_BIT -
VUID-VkBlitImageInfo2-dstImage-00234
dstImagemust have been created with asamplesvalue ofVK_SAMPLE_COUNT_1_BIT -
VUID-VkBlitImageInfo2-filter-02001
IffilterisVK_FILTER_LINEAR, then the format features ofsrcImagemust containVK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT -
VUID-VkBlitImageInfo2-filter-02002
IffilterisVK_FILTER_CUBIC_EXT, then the format features ofsrcImagemust containVK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT -
VUID-VkBlitImageInfo2-filter-00237
IffilterisVK_FILTER_CUBIC_EXT,srcImagemust be of typeVK_IMAGE_TYPE_2D -
VUID-VkBlitImageInfo2-srcSubresource-01705
ThesrcSubresource.mipLevelmember of each element ofpRegionsmust be less than themipLevelsspecified in VkImageCreateInfo whensrcImagewas created -
VUID-VkBlitImageInfo2-dstSubresource-01706
ThedstSubresource.mipLevelmember of each element ofpRegionsmust be less than themipLevelsspecified in VkImageCreateInfo whendstImagewas created -
VUID-VkBlitImageInfo2-srcSubresource-01707
IfsrcSubresource.layerCountis notVK_REMAINING_ARRAY_LAYERS,srcSubresource.baseArrayLayer+srcSubresource.layerCountof each element ofpRegionsmust be less than or equal to thearrayLayersspecified in VkImageCreateInfo whensrcImagewas created -
VUID-VkBlitImageInfo2-dstSubresource-01708
IfdstSubresource.layerCountis notVK_REMAINING_ARRAY_LAYERS,dstSubresource.baseArrayLayer+dstSubresource.layerCountof each element ofpRegionsmust be less than or equal to thearrayLayersspecified in VkImageCreateInfo whendstImagewas created -
VUID-VkBlitImageInfo2-dstImage-02545
dstImageandsrcImagemust not have been created withflagscontainingVK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT -
VUID-VkBlitImageInfo2-maintenance8-10207
If themaintenance8feature is enabled andsrcImageis of typeVK_IMAGE_TYPE_3D, then for each element ofpRegions,srcSubresource.baseArrayLayermust be0, andsrcSubresource.layerCountanddstSubresource.layerCountmust each be1 -
VUID-VkBlitImageInfo2-maintenance8-10208
If themaintenance8feature is enabled anddstImageis of typeVK_IMAGE_TYPE_3D, then for each element ofpRegions,dstSubresource.baseArrayLayermust be0, andsrcSubresource.layerCountanddstSubresource.layerCountmust each be1 -
VUID-VkBlitImageInfo2-maintenance8-10579
If themaintenance8feature is enabled,dstImageisVK_IMAGE_TYPE_3D, andsrcImageis not of typeVK_IMAGE_TYPE_3D, then for each element ofpRegions, the absolute difference of thezmember of each member ofdstOffsetsmust equalsrcSubresource.layerCount -
VUID-VkBlitImageInfo2-maintenance8-10580
If themaintenance8feature is enabled,srcImageisVK_IMAGE_TYPE_3D, anddstImageis not of typeVK_IMAGE_TYPE_3D, then for each element ofpRegions, the absolute difference of thezmember of each member ofsrcOffsetsmust equaldstSubresource.layerCount -
VUID-VkBlitImageInfo2-srcImage-00240
If themaintenance8feature is not enabled and eithersrcImageordstImageis of typeVK_IMAGE_TYPE_3D, then for each element ofpRegions,srcSubresource.baseArrayLayeranddstSubresource.baseArrayLayermust each be0, andsrcSubresource.layerCountanddstSubresource.layerCountmust each be1 -
VUID-VkBlitImageInfo2-aspectMask-00241
For each element ofpRegions,srcSubresource.aspectMaskmust specify aspects present insrcImage -
VUID-VkBlitImageInfo2-aspectMask-00242
For each element ofpRegions,dstSubresource.aspectMaskmust specify aspects present indstImage -
VUID-VkBlitImageInfo2-srcOffset-00243
For each element ofpRegions,srcOffsets[0].x andsrcOffsets[1].x must both be greater than or equal to0and less than or equal to the width of the specifiedsrcSubresourceofsrcImage -
VUID-VkBlitImageInfo2-srcOffset-00244
For each element ofpRegions,srcOffsets[0].y andsrcOffsets[1].y must both be greater than or equal to0and less than or equal to the height of the specifiedsrcSubresourceofsrcImage -
VUID-VkBlitImageInfo2-srcImage-00245
IfsrcImageis of typeVK_IMAGE_TYPE_1D, then for each element ofpRegions,srcOffsets[0].y must be0andsrcOffsets[1].y must be1 -
VUID-VkBlitImageInfo2-srcOffset-00246
For each element ofpRegions,srcOffsets[0].z andsrcOffsets[1].z must both be greater than or equal to0and less than or equal to the depth of the specifiedsrcSubresourceofsrcImage -
VUID-VkBlitImageInfo2-srcImage-00247
IfsrcImageis of typeVK_IMAGE_TYPE_1DorVK_IMAGE_TYPE_2D, then for each element ofpRegions,srcOffsets[0].z must be0andsrcOffsets[1].z must be1 -
VUID-VkBlitImageInfo2-dstOffset-00248
For each element ofpRegions,dstOffsets[0].x anddstOffsets[1].x must both be greater than or equal to0and less than or equal to the width of the specifieddstSubresourceofdstImage -
VUID-VkBlitImageInfo2-dstOffset-00249
For each element ofpRegions,dstOffsets[0].y anddstOffsets[1].y must both be greater than or equal to0and less than or equal to the height of the specifieddstSubresourceofdstImage -
VUID-VkBlitImageInfo2-dstImage-00250
IfdstImageis of typeVK_IMAGE_TYPE_1D, then for each element ofpRegions,dstOffsets[0].y must be0anddstOffsets[1].y must be1 -
VUID-VkBlitImageInfo2-dstOffset-00251
For each element ofpRegions,dstOffsets[0].z anddstOffsets[1].z must both be greater than or equal to0and less than or equal to the depth of the specifieddstSubresourceofdstImage -
VUID-VkBlitImageInfo2-dstImage-00252
IfdstImageis of typeVK_IMAGE_TYPE_1DorVK_IMAGE_TYPE_2D, then for each element ofpRegions,dstOffsets[0].z must be0anddstOffsets[1].z must be1 -
VUID-VkBlitImageInfo2-pRegions-04561
If any element ofpRegionscontains VkCopyCommandTransformInfoQCOM in itspNextchain, thensrcImageanddstImagemust not be block-compressed images -
VUID-VkBlitImageInfo2KHR-pRegions-06207
If any element ofpRegionscontains VkCopyCommandTransformInfoQCOM in itspNextchain, thensrcImagemust be of typeVK_IMAGE_TYPE_2D -
VUID-VkBlitImageInfo2KHR-pRegions-06208
If any element ofpRegionscontains VkCopyCommandTransformInfoQCOM in itspNextchain, thensrcImagemust not have a multi-planar format -
VUID-VkBlitImageInfo2-filter-09204
IffilterisVK_FILTER_CUBIC_EXTand if the selectableCubicWeights feature is not enabled then the cubic weights must beVK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM
-
VUID-VkBlitImageInfo2-sType-sType
sTypemust beVK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2 -
VUID-VkBlitImageInfo2-pNext-pNext
pNextmust beNULLor a pointer to a valid instance of VkBlitImageCubicWeightsInfoQCOM -
VUID-VkBlitImageInfo2-sType-unique
ThesTypevalue of each structure in thepNextchain must be unique -
VUID-VkBlitImageInfo2-srcImage-parameter
srcImagemust be a valid VkImage handle -
VUID-VkBlitImageInfo2-srcImageLayout-parameter
srcImageLayoutmust be a valid VkImageLayout value -
VUID-VkBlitImageInfo2-dstImage-parameter
dstImagemust be a valid VkImage handle -
VUID-VkBlitImageInfo2-dstImageLayout-parameter
dstImageLayoutmust be a valid VkImageLayout value -
VUID-VkBlitImageInfo2-pRegions-parameter
pRegionsmust be a valid pointer to an array ofregionCountvalid VkImageBlit2 structures -
VUID-VkBlitImageInfo2-filter-parameter
filtermust be a valid VkFilter value -
VUID-VkBlitImageInfo2-regionCount-arraylength
regionCountmust be greater than0 -
VUID-VkBlitImageInfo2-commonparent
Both ofdstImage, andsrcImagemust 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.