VkResolveImageInfo2
The VkResolveImageInfo2 structure is defined as:
typedef struct VkResolveImageInfo2 {
VkStructureType sType;
const void* pNext;
VkImage srcImage;
VkImageLayout srcImageLayout;
VkImage dstImage;
VkImageLayout dstImageLayout;
uint32_t regionCount;
const VkImageResolve2* pRegions;
} VkResolveImageInfo2;
or the equivalent
typedef VkResolveImageInfo2 VkResolveImageInfo2KHR;
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 resolve.dstImageis the destination image.dstImageLayoutis the layout of the destination image subresources for the resolve.regionCountis the number of regions to resolve.pRegionsis a pointer to an array of VkImageResolve2 structures specifying the regions to resolve.
Valid Usage
VUID-VkResolveImageInfo2-pRegions-00255
The union of all source regions, and the union of all destination
regions, specified by the elements of pRegions, must not overlap
in memory
VUID-VkResolveImageInfo2-srcImage-00256
If srcImage is non-sparse then it must be bound completely and
contiguously to a single VkDeviceMemory object
VUID-VkResolveImageInfo2-srcImage-00257
srcImage must have a sample count equal to any valid sample count
value other than VK_SAMPLE_COUNT_1_BIT
VUID-VkResolveImageInfo2-dstImage-00258
If dstImage is non-sparse then it must be bound completely and
contiguously to a single VkDeviceMemory object
VUID-VkResolveImageInfo2-dstImage-00259
dstImage must have a sample count equal to
VK_SAMPLE_COUNT_1_BIT
VUID-VkResolveImageInfo2-srcImageLayout-00260
srcImageLayout must specify the layout of the image subresources
of srcImage specified in pRegions at the time this command
is executed on a VkDevice
VUID-VkResolveImageInfo2-srcImageLayout-01400
srcImageLayout must be
VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR,
VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or
VK_IMAGE_LAYOUT_GENERAL
VUID-VkResolveImageInfo2-dstImageLayout-00262
dstImageLayout must specify the layout of the image subresources
of dstImage specified in pRegions at the time this command
is executed on a VkDevice
VUID-VkResolveImageInfo2-dstImageLayout-01401
dstImageLayout must be
VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR,
VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or
VK_IMAGE_LAYOUT_GENERAL
VUID-VkResolveImageInfo2-dstImage-02003
The format features of
dstImage must contain
VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
VUID-VkResolveImageInfo2-linearColorAttachment-06519
If the linearColorAttachment
feature is enabled and the image is created with
VK_IMAGE_TILING_LINEAR, the
format features of dstImagemust contain VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV
VUID-VkResolveImageInfo2-srcImage-01386
srcImage and dstImage must have been created with the same
image format
VUID-VkResolveImageInfo2-srcSubresource-01709
The srcSubresource.mipLevel member of each element of
pRegions must be less than the mipLevels specified in
VkImageCreateInfo when srcImage was created
VUID-VkResolveImageInfo2-dstSubresource-01710
The dstSubresource.mipLevel member of each element of
pRegions must be less than the mipLevels specified in
VkImageCreateInfo when dstImage was created
VUID-VkResolveImageInfo2-srcSubresource-01711
If srcSubresource.layerCount is not
VK_REMAINING_ARRAY_LAYERS,
srcSubresource.baseArrayLayer +
srcSubresource.layerCount of each element of pRegions must
be less than or equal to the arrayLayers specified in
VkImageCreateInfo when srcImage was created
VUID-VkResolveImageInfo2-dstSubresource-01712
If dstSubresource.layerCount is not
VK_REMAINING_ARRAY_LAYERS,
dstSubresource.baseArrayLayer +
dstSubresource.layerCount of each element of pRegions must
be less than or equal to the arrayLayers specified in
VkImageCreateInfo when dstImage was created
VUID-VkResolveImageInfo2-dstImage-02546
dstImage and srcImage must not have been created with
flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-VkResolveImageInfo2-srcImage-04446
If dstImage is of type VK_IMAGE_TYPE_3D, then for each
element of pRegions, srcSubresource.layerCount must be 1
VUID-VkResolveImageInfo2-srcImage-04447
If dstImage is of type VK_IMAGE_TYPE_3D, then for each
element of pRegions, dstSubresource.baseArrayLayer must be
0 and dstSubresource.layerCount must be 1
VUID-VkResolveImageInfo2-srcOffset-00269
For each element of pRegions, srcOffset.x and
(extent.width + srcOffset.x) must both be
greater than or equal to 0 and less than or equal to the width of the
specified srcSubresource of srcImage
VUID-VkResolveImageInfo2-srcOffset-00270
For each element of pRegions, srcOffset.y and
(extent.height + srcOffset.y) must both be
greater than or equal to 0 and less than or equal to the height of the
specified srcSubresource of srcImage
VUID-VkResolveImageInfo2-srcImage-00271
If srcImage is of type VK_IMAGE_TYPE_1D, then for each
element of pRegions, srcOffset.y must be 0 and
extent.height must be 1
VUID-VkResolveImageInfo2-srcOffset-00272
For each element of pRegions, srcOffset.z and
(extent.depth + srcOffset.z) must both be
greater than or equal to 0 and less than or equal to the depth of the
specified srcSubresource of srcImage
VUID-VkResolveImageInfo2-srcImage-00273
If srcImage is of type VK_IMAGE_TYPE_1D or
VK_IMAGE_TYPE_2D, then for each element of pRegions,
srcOffset.z must be 0 and extent.depth must be 1
VUID-VkResolveImageInfo2-dstOffset-00274
For each element of pRegions, dstOffset.x and
(extent.width + dstOffset.x) must both be
greater than or equal to 0 and less than or equal to the width of the
specified dstSubresource of dstImage
VUID-VkResolveImageInfo2-dstOffset-00275
For each element of pRegions, dstOffset.y and
(extent.height + dstOffset.y) must both be
greater than or equal to 0 and less than or equal to the height of the
specified dstSubresource of dstImage
VUID-VkResolveImageInfo2-dstImage-00276
If dstImage is of type VK_IMAGE_TYPE_1D, then for each
element of pRegions, dstOffset.y must be 0 and
extent.height must be 1
VUID-VkResolveImageInfo2-dstOffset-00277
For each element of pRegions, dstOffset.z and
(extent.depth + dstOffset.z) must both be
greater than or equal to 0 and less than or equal to the depth of the
specified dstSubresource of dstImage
VUID-VkResolveImageInfo2-dstImage-00278
If dstImage is of type VK_IMAGE_TYPE_1D or
VK_IMAGE_TYPE_2D, then for each element of pRegions,
dstOffset.z must be 0 and extent.depth must be 1
VUID-VkResolveImageInfo2-srcImage-06762
srcImage must have been created with
VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
VUID-VkResolveImageInfo2-srcImage-06763
The format features of
srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT
VUID-VkResolveImageInfo2-dstImage-06764
dstImage must have been created with
VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
VUID-VkResolveImageInfo2-dstImage-06765
The format features of
dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT
Valid Usage (Implicit)
VUID-VkResolveImageInfo2-sType-sType
sType must be VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2
VUID-VkResolveImageInfo2-pNext-pNext
pNext must be NULL
VUID-VkResolveImageInfo2-srcImage-parameter
srcImage must be a valid VkImage handle
VUID-VkResolveImageInfo2-srcImageLayout-parameter
srcImageLayout must be a valid VkImageLayout value
VUID-VkResolveImageInfo2-dstImage-parameter
dstImage must be a valid VkImage handle
VUID-VkResolveImageInfo2-dstImageLayout-parameter
dstImageLayout must be a valid VkImageLayout value
VUID-VkResolveImageInfo2-pRegions-parameter
pRegions must be a valid pointer to an array of regionCount valid VkImageResolve2 structures
VUID-VkResolveImageInfo2-regionCount-arraylength
regionCount must be greater than 0
VUID-VkResolveImageInfo2-commonparent
Both of dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice