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;
or the equivalent
// Provided by VK_KHR_copy_commands2
typedef VkBlitImageInfo2 VkBlitImageInfo2KHR;
Members
-
sType
is a VkStructureType value identifying this structure. -
pNext
isNULL
or a pointer to a structure extending this structure. -
srcImage
is the source image. -
srcImageLayout
is the layout of the source image subresources for the blit. -
dstImage
is the destination image. -
dstImageLayout
is the layout of the destination image subresources for the blit. -
regionCount
is the number of regions to blit. -
pRegions
is a pointer to an array of VkImageBlit2 structures specifying the regions to blit. -
filter
is 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 ofsrcImage
must containVK_FORMAT_FEATURE_BLIT_SRC_BIT
-
VUID-VkBlitImageInfo2-srcImage-06421
srcImage
must not use a format that requires a sampler Y′CBCR conversion -
VUID-VkBlitImageInfo2-srcImage-00219
srcImage
must have been created withVK_IMAGE_USAGE_TRANSFER_SRC_BIT
usage flag -
VUID-VkBlitImageInfo2-srcImage-00220
IfsrcImage
is non-sparse then it must be bound completely and contiguously to a singleVkDeviceMemory
object -
VUID-VkBlitImageInfo2-srcImageLayout-00221
srcImageLayout
must specify the layout of the image subresources ofsrcImage
specified inpRegions
at the time this command is executed on aVkDevice
-
VUID-VkBlitImageInfo2-srcImageLayout-01398
srcImageLayout
must beVK_IMAGE_LAYOUT_SHARED_PRESENT_KHR
,VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL
orVK_IMAGE_LAYOUT_GENERAL
-
VUID-VkBlitImageInfo2-srcImage-09459
IfsrcImage
anddstImage
are the same, and an elements ofpRegions
contains thesrcSubresource
anddstSubresource
with matchingmipLevel
and overlapping array layers, then thesrcImageLayout
anddstImageLayout
must beVK_IMAGE_LAYOUT_GENERAL
orVK_IMAGE_LAYOUT_SHARED_PRESENT_KHR
-
VUID-VkBlitImageInfo2-dstImage-02000
The format features ofdstImage
must containVK_FORMAT_FEATURE_BLIT_DST_BIT
-
VUID-VkBlitImageInfo2-dstImage-06422
dstImage
must not use a format that requires a sampler Y′CBCR conversion -
VUID-VkBlitImageInfo2-dstImage-00224
dstImage
must have been created withVK_IMAGE_USAGE_TRANSFER_DST_BIT
usage flag -
VUID-VkBlitImageInfo2-dstImage-00225
IfdstImage
is non-sparse then it must be bound completely and contiguously to a singleVkDeviceMemory
object -
VUID-VkBlitImageInfo2-dstImageLayout-00226
dstImageLayout
must specify the layout of the image subresources ofdstImage
specified inpRegions
at the time this command is executed on aVkDevice
-
VUID-VkBlitImageInfo2-dstImageLayout-01399
dstImageLayout
must beVK_IMAGE_LAYOUT_SHARED_PRESENT_KHR
,VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
orVK_IMAGE_LAYOUT_GENERAL
-
VUID-VkBlitImageInfo2-srcImage-00229
If either ofsrcImage
ordstImage
was created with a signed integer VkFormat, the other must also have been created with a signed integer VkFormat -
VUID-VkBlitImageInfo2-srcImage-00230
If either ofsrcImage
ordstImage
was created with an unsigned integer VkFormat, the other must also have been created with an unsigned integer VkFormat -
VUID-VkBlitImageInfo2-srcImage-00231
If either ofsrcImage
ordstImage
was created with a depth/stencil format, the other must have exactly the same format -
VUID-VkBlitImageInfo2-srcImage-00232
IfsrcImage
was created with a depth/stencil format,filter
must beVK_FILTER_NEAREST
-
VUID-VkBlitImageInfo2-srcImage-00233
srcImage
must have been created with asamples
value ofVK_SAMPLE_COUNT_1_BIT
-
VUID-VkBlitImageInfo2-dstImage-00234
dstImage
must have been created with asamples
value ofVK_SAMPLE_COUNT_1_BIT
-
VUID-VkBlitImageInfo2-filter-02001
Iffilter
isVK_FILTER_LINEAR
, then the format features ofsrcImage
must containVK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
-
VUID-VkBlitImageInfo2-filter-02002
Iffilter
isVK_FILTER_CUBIC_EXT
, then the format features ofsrcImage
must containVK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
-
VUID-VkBlitImageInfo2-filter-00237
Iffilter
isVK_FILTER_CUBIC_EXT
,srcImage
must be of typeVK_IMAGE_TYPE_2D
-
VUID-VkBlitImageInfo2-srcSubresource-01705
ThesrcSubresource.mipLevel
member of each element ofpRegions
must be less than themipLevels
specified in VkImageCreateInfo whensrcImage
was created -
VUID-VkBlitImageInfo2-dstSubresource-01706
ThedstSubresource.mipLevel
member of each element ofpRegions
must be less than themipLevels
specified in VkImageCreateInfo whendstImage
was created -
VUID-VkBlitImageInfo2-srcSubresource-01707
IfsrcSubresource.layerCount
is notVK_REMAINING_ARRAY_LAYERS
,srcSubresource.baseArrayLayer
+srcSubresource.layerCount
of each element ofpRegions
must be less than or equal to thearrayLayers
specified in VkImageCreateInfo whensrcImage
was created -
VUID-VkBlitImageInfo2-dstSubresource-01708
IfdstSubresource.layerCount
is notVK_REMAINING_ARRAY_LAYERS
,dstSubresource.baseArrayLayer
+dstSubresource.layerCount
of each element ofpRegions
must be less than or equal to thearrayLayers
specified in VkImageCreateInfo whendstImage
was created -
VUID-VkBlitImageInfo2-dstImage-02545
dstImage
andsrcImage
must not have been created withflags
containingVK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
-
VUID-VkBlitImageInfo2-maintenance8-10207
If themaintenance8
feature is enabled andsrcImage
is of typeVK_IMAGE_TYPE_3D
, then for each element ofpRegions
,srcSubresource.baseArrayLayer
must be0
, andsrcSubresource.layerCount
anddstSubresource.layerCount
must each be1
-
VUID-VkBlitImageInfo2-maintenance8-10208
If themaintenance8
feature is enabled anddstImage
is of typeVK_IMAGE_TYPE_3D
, then for each element ofpRegions
,dstSubresource.baseArrayLayer
must be0
, andsrcSubresource.layerCount
anddstSubresource.layerCount
must each be1
-
VUID-VkBlitImageInfo2-maintenance8-10579
If themaintenance8
feature is enabled,dstImage
isVK_IMAGE_TYPE_3D
, andsrcImage
is not of typeVK_IMAGE_TYPE_3D
, then for each element ofpRegions
, the absolute difference of thez
member of each member ofdstOffsets
must equalsrcSubresource.layerCount
-
VUID-VkBlitImageInfo2-maintenance8-10580
If themaintenance8
feature is enabled,srcImage
isVK_IMAGE_TYPE_3D
, anddstImage
is not of typeVK_IMAGE_TYPE_3D
, then for each element ofpRegions
, the absolute difference of thez
member of each member ofsrcOffsets
must equaldstSubresource.layerCount
-
VUID-VkBlitImageInfo2-srcImage-00240
If themaintenance8
feature is not enabled and eithersrcImage
ordstImage
is of typeVK_IMAGE_TYPE_3D
, then for each element ofpRegions
,srcSubresource.baseArrayLayer
anddstSubresource.baseArrayLayer
must each be0
, andsrcSubresource.layerCount
anddstSubresource.layerCount
must each be1
-
VUID-VkBlitImageInfo2-aspectMask-00241
For each element ofpRegions
,srcSubresource.aspectMask
must specify aspects present insrcImage
-
VUID-VkBlitImageInfo2-aspectMask-00242
For each element ofpRegions
,dstSubresource.aspectMask
must 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 to0
and less than or equal to the width of the specifiedsrcSubresource
ofsrcImage
-
VUID-VkBlitImageInfo2-srcOffset-00244
For each element ofpRegions
,srcOffsets
[0].y andsrcOffsets
[1].y must both be greater than or equal to0
and less than or equal to the height of the specifiedsrcSubresource
ofsrcImage
-
VUID-VkBlitImageInfo2-srcImage-00245
IfsrcImage
is of typeVK_IMAGE_TYPE_1D
, then for each element ofpRegions
,srcOffsets
[0].y must be0
andsrcOffsets
[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 to0
and less than or equal to the depth of the specifiedsrcSubresource
ofsrcImage
-
VUID-VkBlitImageInfo2-srcImage-00247
IfsrcImage
is of typeVK_IMAGE_TYPE_1D
orVK_IMAGE_TYPE_2D
, then for each element ofpRegions
,srcOffsets
[0].z must be0
andsrcOffsets
[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 to0
and less than or equal to the width of the specifieddstSubresource
ofdstImage
-
VUID-VkBlitImageInfo2-dstOffset-00249
For each element ofpRegions
,dstOffsets
[0].y anddstOffsets
[1].y must both be greater than or equal to0
and less than or equal to the height of the specifieddstSubresource
ofdstImage
-
VUID-VkBlitImageInfo2-dstImage-00250
IfdstImage
is of typeVK_IMAGE_TYPE_1D
, then for each element ofpRegions
,dstOffsets
[0].y must be0
anddstOffsets
[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 to0
and less than or equal to the depth of the specifieddstSubresource
ofdstImage
-
VUID-VkBlitImageInfo2-dstImage-00252
IfdstImage
is of typeVK_IMAGE_TYPE_1D
orVK_IMAGE_TYPE_2D
, then for each element ofpRegions
,dstOffsets
[0].z must be0
anddstOffsets
[1].z must be1
-
VUID-VkBlitImageInfo2-pRegions-04561
If any element ofpRegions
contains VkCopyCommandTransformInfoQCOM in itspNext
chain, thensrcImage
anddstImage
must not be block-compressed images -
VUID-VkBlitImageInfo2KHR-pRegions-06207
If any element ofpRegions
contains VkCopyCommandTransformInfoQCOM in itspNext
chain, thensrcImage
must be of typeVK_IMAGE_TYPE_2D
-
VUID-VkBlitImageInfo2KHR-pRegions-06208
If any element ofpRegions
contains VkCopyCommandTransformInfoQCOM in itspNext
chain, thensrcImage
must not have a multi-planar format -
VUID-VkBlitImageInfo2-filter-09204
Iffilter
isVK_FILTER_CUBIC_EXT
and if the selectableCubicWeights feature is not enabled then the cubic weights must beVK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM
-
VUID-VkBlitImageInfo2-sType-sType
sType
must beVK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2
-
VUID-VkBlitImageInfo2-pNext-pNext
pNext
must beNULL
or a pointer to a valid instance of VkBlitImageCubicWeightsInfoQCOM -
VUID-VkBlitImageInfo2-sType-unique
ThesType
value of each structure in thepNext
chain must be unique -
VUID-VkBlitImageInfo2-srcImage-parameter
srcImage
must be a valid VkImage handle -
VUID-VkBlitImageInfo2-srcImageLayout-parameter
srcImageLayout
must be a valid VkImageLayout value -
VUID-VkBlitImageInfo2-dstImage-parameter
dstImage
must be a valid VkImage handle -
VUID-VkBlitImageInfo2-dstImageLayout-parameter
dstImageLayout
must be a valid VkImageLayout value -
VUID-VkBlitImageInfo2-pRegions-parameter
pRegions
must be a valid pointer to an array ofregionCount
valid VkImageBlit2 structures -
VUID-VkBlitImageInfo2-filter-parameter
filter
must be a valid VkFilter value -
VUID-VkBlitImageInfo2-regionCount-arraylength
regionCount
must be greater than0
-
VUID-VkBlitImageInfo2-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.