Structures

VkResolveImageInfo2

Structure specifying parameters of resolve image command

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;
  • sType is a VkStructureType value identifying this structure.
  • pNext is NULL 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 resolve.
  • dstImage is the destination image.
  • dstImageLayout is the layout of the destination image subresources for the resolve.
  • regionCount is the number of regions to resolve.
  • pRegions is 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-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