VkBlitImageInfo2(3)
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;
// Provided by VK_KHR_copy_commands2
// Equivalent to VkBlitImageInfo2
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 contain VK_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 with the VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag set -
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 be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL -
VUID-VkBlitImageInfo2-srcImage-09459
IfsrcImageanddstImageare the same, and an elements ofpRegionscontains thesrcSubresourceanddstSubresourcewith matchingmipLeveland overlapping array layers, then thesrcImageLayoutanddstImageLayoutmust be VK_IMAGE_LAYOUT_GENERAL or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR -
VUID-VkBlitImageInfo2-dstImage-02000
The format features ofdstImagemust contain VK_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 with the VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag set -
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 be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_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 be VK_FILTER_NEAREST -
VUID-VkBlitImageInfo2-srcImage-00233
srcImagemust have been created with asamplesvalue of VK_SAMPLE_COUNT_1_BIT -
VUID-VkBlitImageInfo2-dstImage-00234
dstImagemust have been created with asamplesvalue of VK_SAMPLE_COUNT_1_BIT -
VUID-VkBlitImageInfo2-filter-02001
Iffilteris VK_FILTER_LINEAR, then the format features ofsrcImagemust contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT -
VUID-VkBlitImageInfo2-filter-02002
Iffilteris VK_FILTER_CUBIC_EXT, then the format features ofsrcImagemust contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT -
VUID-VkBlitImageInfo2-filter-00237
Iffilteris VK_FILTER_CUBIC_EXT,srcImagemust be of type VK_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 not VK_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 not VK_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 withflagscontaining VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT -
VUID-VkBlitImageInfo2-maintenance8-10207
If themaintenance8feature is enabled andsrcImageis of type VK_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 type VK_IMAGE_TYPE_3D, then for each element ofpRegions,dstSubresource.baseArrayLayermust be0, andsrcSubresource.layerCountanddstSubresource.layerCountmust each be1 -
VUID-VkBlitImageInfo2-maintenance8-10579
If themaintenance8feature is enabled,dstImageis VK_IMAGE_TYPE_3D, andsrcImageis not of type VK_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,srcImageis VK_IMAGE_TYPE_3D, anddstImageis not of type VK_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 type VK_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 type VK_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 type VK_IMAGE_TYPE_1D or VK_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 type VK_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 type VK_IMAGE_TYPE_1D or VK_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 type VK_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
Iffilteris VK_FILTER_CUBIC_EXT and if the selectableCubicWeights feature is not enabled then the cubic weights must be VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM
-
VUID-VkBlitImageInfo2-sType-sType
sTypemust be VK_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.