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-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.