C Specification
The VkBlitImageInfo2KHR
structure is defined as:
// Provided by VK_KHR_copy_commands2
typedef struct VkBlitImageInfo2KHR {
VkStructureType sType;
const void* pNext;
VkImage srcImage;
VkImageLayout srcImageLayout;
VkImage dstImage;
VkImageLayout dstImageLayout;
uint32_t regionCount;
const VkImageBlit2KHR* pRegions;
VkFilter filter;
} VkBlitImageInfo2KHR;
Members
-
sType
is the type of 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 VkImageBlit2KHR structures specifying the regions to blit. -
filter
is a VkFilter specifying the filter to apply if the blits require scaling.
Description
-
[[VUID-{refpage}-pRegions-00215]] VUID-{refpage}-pRegions-00215
The source region specified by each element ofpRegions
must be a region that is contained withinsrcImage
-
[[VUID-{refpage}-pRegions-00216]] VUID-{refpage}-pRegions-00216
The destination region specified by each element ofpRegions
must be a region that is contained withindstImage
-
[[VUID-{refpage}-pRegions-00217]] VUID-{refpage}-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-{refpage}-srcImage-01999]] VUID-{refpage}-srcImage-01999
The format features ofsrcImage
must containVK_FORMAT_FEATURE_BLIT_SRC_BIT
-
[[VUID-{refpage}-srcImage-01561]] VUID-{refpage}-srcImage-01561
srcImage
must not use a format listed in [formats-requiring-sampler-ycbcr-conversion] -
[[VUID-{refpage}-srcImage-00219]] VUID-{refpage}-srcImage-00219
srcImage
must have been created withVK_IMAGE_USAGE_TRANSFER_SRC_BIT
usage flag -
[[VUID-{refpage}-srcImage-00220]] VUID-{refpage}-srcImage-00220
IfsrcImage
is non-sparse then it must be bound completely and contiguously to a singleVkDeviceMemory
object -
[[VUID-{refpage}-srcImageLayout-00221]] VUID-{refpage}-srcImageLayout-00221
srcImageLayout
must specify the layout of the image subresources ofsrcImage
specified inpRegions
at the time this command is executed on aVkDevice
-
[[VUID-{refpage}-srcImageLayout-01398]] VUID-{refpage}-srcImageLayout-01398
srcImageLayout
must beVK_IMAGE_LAYOUT_SHARED_PRESENT_KHR
,VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL
orVK_IMAGE_LAYOUT_GENERAL
-
[[VUID-{refpage}-dstImage-02000]] VUID-{refpage}-dstImage-02000
The format features ofdstImage
must containVK_FORMAT_FEATURE_BLIT_DST_BIT
-
[[VUID-{refpage}-dstImage-01562]] VUID-{refpage}-dstImage-01562
dstImage
must not use a format listed in [formats-requiring-sampler-ycbcr-conversion] -
[[VUID-{refpage}-dstImage-00224]] VUID-{refpage}-dstImage-00224
dstImage
must have been created withVK_IMAGE_USAGE_TRANSFER_DST_BIT
usage flag -
[[VUID-{refpage}-dstImage-00225]] VUID-{refpage}-dstImage-00225
IfdstImage
is non-sparse then it must be bound completely and contiguously to a singleVkDeviceMemory
object -
[[VUID-{refpage}-dstImageLayout-00226]] VUID-{refpage}-dstImageLayout-00226
dstImageLayout
must specify the layout of the image subresources ofdstImage
specified inpRegions
at the time this command is executed on aVkDevice
-
[[VUID-{refpage}-dstImageLayout-01399]] VUID-{refpage}-dstImageLayout-01399
dstImageLayout
must beVK_IMAGE_LAYOUT_SHARED_PRESENT_KHR
,VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
orVK_IMAGE_LAYOUT_GENERAL
-
[[VUID-{refpage}-srcImage-00229]] VUID-{refpage}-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-{refpage}-srcImage-00230]] VUID-{refpage}-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-{refpage}-srcImage-00231]] VUID-{refpage}-srcImage-00231
If either ofsrcImage
ordstImage
was created with a depth/stencil format, the other must have exactly the same format -
[[VUID-{refpage}-srcImage-00232]] VUID-{refpage}-srcImage-00232
IfsrcImage
was created with a depth/stencil format,filter
must beVK_FILTER_NEAREST
-
[[VUID-{refpage}-srcImage-00233]] VUID-{refpage}-srcImage-00233
srcImage
must have been created with asamples
value ofVK_SAMPLE_COUNT_1_BIT
-
[[VUID-{refpage}-dstImage-00234]] VUID-{refpage}-dstImage-00234
dstImage
must have been created with asamples
value ofVK_SAMPLE_COUNT_1_BIT
-
[[VUID-{refpage}-filter-02001]] VUID-{refpage}-filter-02001
Iffilter
isVK_FILTER_LINEAR
, then the format features ofsrcImage
must containVK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
-
[[VUID-{refpage}-filter-02002]] VUID-{refpage}-filter-02002
Iffilter
isVK_FILTER_CUBIC_EXT
, then the format features ofsrcImage
must containVK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
-
[[VUID-{refpage}-filter-00237]] VUID-{refpage}-filter-00237
Iffilter
isVK_FILTER_CUBIC_EXT
,srcImage
must be of typeVK_IMAGE_TYPE_2D
-
[[VUID-{refpage}-srcSubresource-01705]] VUID-{refpage}-srcSubresource-01705
ThesrcSubresource.mipLevel
member of each element ofpRegions
must be less than themipLevels
specified in VkImageCreateInfo whensrcImage
was created -
[[VUID-{refpage}-dstSubresource-01706]] VUID-{refpage}-dstSubresource-01706
ThedstSubresource.mipLevel
member of each element ofpRegions
must be less than themipLevels
specified in VkImageCreateInfo whendstImage
was created -
[[VUID-{refpage}-srcSubresource-01707]] VUID-{refpage}-srcSubresource-01707
ThesrcSubresource.baseArrayLayer
+srcSubresource.layerCount
of each element ofpRegions
must be less than or equal to thearrayLayers
specified in VkImageCreateInfo whensrcImage
was created -
[[VUID-{refpage}-dstSubresource-01708]] VUID-{refpage}-dstSubresource-01708
ThedstSubresource.baseArrayLayer
+dstSubresource.layerCount
of each element ofpRegions
must be less than or equal to thearrayLayers
specified in VkImageCreateInfo whendstImage
was created -
[[VUID-{refpage}-dstImage-02545]] VUID-{refpage}-dstImage-02545
dstImage
andsrcImage
must not have been created withflags
containingVK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
-
[[VUID-{refpage}-srcImage-00240]] VUID-{refpage}-srcImage-00240
If 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-{refpage}-aspectMask-00241]] VUID-{refpage}-aspectMask-00241
For each element ofpRegions
,srcSubresource.aspectMask
must specify aspects present insrcImage
-
[[VUID-{refpage}-aspectMask-00242]] VUID-{refpage}-aspectMask-00242
For each element ofpRegions
,dstSubresource.aspectMask
must specify aspects present indstImage
-
[[VUID-{refpage}-srcOffset-00243]] VUID-{refpage}-srcOffset-00243
For each element ofpRegions
,srcOffset
[0].x andsrcOffset
[1].x must both be greater than or equal to0
and less than or equal to the width of the specifiedsrcSubresource
ofsrcImage
-
[[VUID-{refpage}-srcOffset-00244]] VUID-{refpage}-srcOffset-00244
For each element ofpRegions
,srcOffset
[0].y andsrcOffset
[1].y must both be greater than or equal to0
and less than or equal to the height of the specifiedsrcSubresource
ofsrcImage
-
[[VUID-{refpage}-srcImage-00245]] VUID-{refpage}-srcImage-00245
IfsrcImage
is of typeVK_IMAGE_TYPE_1D
, then for each element ofpRegions
,srcOffset
[0].y must be0
andsrcOffset
[1].y must be1
-
[[VUID-{refpage}-srcOffset-00246]] VUID-{refpage}-srcOffset-00246
For each element ofpRegions
,srcOffset
[0].z andsrcOffset
[1].z must both be greater than or equal to0
and less than or equal to the depth of the specifiedsrcSubresource
ofsrcImage
-
[[VUID-{refpage}-srcImage-00247]] VUID-{refpage}-srcImage-00247
IfsrcImage
is of typeVK_IMAGE_TYPE_1D
orVK_IMAGE_TYPE_2D
, then for each element ofpRegions
,srcOffset
[0].z must be0
andsrcOffset
[1].z must be1
-
[[VUID-{refpage}-dstOffset-00248]] VUID-{refpage}-dstOffset-00248
For each element ofpRegions
,dstOffset
[0].x anddstOffset
[1].x must both be greater than or equal to0
and less than or equal to the width of the specifieddstSubresource
ofdstImage
-
[[VUID-{refpage}-dstOffset-00249]] VUID-{refpage}-dstOffset-00249
For each element ofpRegions
,dstOffset
[0].y anddstOffset
[1].y must both be greater than or equal to0
and less than or equal to the height of the specifieddstSubresource
ofdstImage
-
[[VUID-{refpage}-dstImage-00250]] VUID-{refpage}-dstImage-00250
IfdstImage
is of typeVK_IMAGE_TYPE_1D
, then for each element ofpRegions
,dstOffset
[0].y must be0
anddstOffset
[1].y must be1
-
[[VUID-{refpage}-dstOffset-00251]] VUID-{refpage}-dstOffset-00251
For each element ofpRegions
,dstOffset
[0].z anddstOffset
[1].z must both be greater than or equal to0
and less than or equal to the depth of the specifieddstSubresource
ofdstImage
-
[[VUID-{refpage}-dstImage-00252]] VUID-{refpage}-dstImage-00252
IfdstImage
is of typeVK_IMAGE_TYPE_1D
orVK_IMAGE_TYPE_2D
, then for each element ofpRegions
,dstOffset
[0].z must be0
anddstOffset
[1].z must be1
-
VUID-VkBlitImageInfo2KHR-pRegions-04561
If any element ofpRegions
contains VkCopyCommandTransformInfoQCOM in itspNext
chain, thensrcImage
anddstImage
must not be a block-compressed image. -
VUID-VkBlitImageInfo2KHR-pRegions-04562
If any element ofpRegions
contains VkCopyCommandTransformInfoQCOM in itspNext
chain, then thesrcImage
must be of typeVK_IMAGE_TYPE_2D
and must not be a multi-planar format.
-
VUID-VkBlitImageInfo2KHR-sType-sType
sType
must beVK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR
-
VUID-VkBlitImageInfo2KHR-srcImage-parameter
srcImage
must be a valid VkImage handle -
VUID-VkBlitImageInfo2KHR-srcImageLayout-parameter
srcImageLayout
must be a valid VkImageLayout value -
VUID-VkBlitImageInfo2KHR-dstImage-parameter
dstImage
must be a valid VkImage handle -
VUID-VkBlitImageInfo2KHR-dstImageLayout-parameter
dstImageLayout
must be a valid VkImageLayout value -
VUID-VkBlitImageInfo2KHR-pRegions-parameter
pRegions
must be a valid pointer to an array ofregionCount
valid VkImageBlit2KHR structures -
VUID-VkBlitImageInfo2KHR-filter-parameter
filter
must be a valid VkFilter value -
VUID-VkBlitImageInfo2KHR-regionCount-arraylength
regionCount
must be greater than0
-
VUID-VkBlitImageInfo2KHR-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.