C Specification

If the pNext list of VkSubpassDescription2 includes a VkSubpassDescriptionDepthStencilResolve structure, then that structure describes multisample resolve operations for the depth/stencil attachment in a subpass.

The VkSubpassDescriptionDepthStencilResolve structure is defined as:

// Provided by VK_VERSION_1_2
typedef struct VkSubpassDescriptionDepthStencilResolve {
VkStructureType                  sType;
const void*                      pNext;
VkResolveModeFlagBits            depthResolveMode;
VkResolveModeFlagBits            stencilResolveMode;
const VkAttachmentReference2*    pDepthStencilResolveAttachment;
} VkSubpassDescriptionDepthStencilResolve;

or the equivalent

// Provided by VK_KHR_depth_stencil_resolve
typedef VkSubpassDescriptionDepthStencilResolve VkSubpassDescriptionDepthStencilResolveKHR;

Members

• sType is the type of this structure.

• pNext is NULL or a pointer to a structure extending this structure.

• depthResolveMode is a bitmask of VkResolveModeFlagBits describing the depth resolve mode.

• stencilResolveMode is a bitmask of VkResolveModeFlagBits describing the stencil resolve mode.

• pDepthStencilResolveAttachment is an optional VkAttachmentReference structure defining the depth/stencil resolve attachment for this subpass and its layout.

Description

Valid Usage
• VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03177
If pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED, pDepthStencilAttachment must not have the value VK_ATTACHMENT_UNUSED

• VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03178
If pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED, depthResolveMode and stencilResolveMode must not both be VK_RESOLVE_MODE_NONE

• VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03179
If pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED, pDepthStencilAttachment must not have a sample count of VK_SAMPLE_COUNT_1_BIT

• VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03180
If pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED, pDepthStencilResolveAttachment must have a sample count of VK_SAMPLE_COUNT_1_BIT

• VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-02651
If pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED then it must have a format whose features contain VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT

• VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03181
If the VkFormat of pDepthStencilResolveAttachment has a depth component, then the VkFormat of pDepthStencilAttachment must have a depth component with the same number of bits and numerical type

• VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03182
If the VkFormat of pDepthStencilResolveAttachment has a stencil component, then the VkFormat of pDepthStencilAttachment must have a stencil component with the same number of bits and numerical type

• VUID-VkSubpassDescriptionDepthStencilResolve-depthResolveMode-03183
The value of depthResolveMode must be one of the bits set in VkPhysicalDeviceDepthStencilResolveProperties::supportedDepthResolveModes or VK_RESOLVE_MODE_NONE

• VUID-VkSubpassDescriptionDepthStencilResolve-stencilResolveMode-03184
The value of stencilResolveMode must be one of the bits set in VkPhysicalDeviceDepthStencilResolveProperties::supportedStencilResolveModes or VK_RESOLVE_MODE_NONE

• VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03185
If the VkFormat of pDepthStencilResolveAttachment has both depth and stencil components, VkPhysicalDeviceDepthStencilResolveProperties::independentResolve is VK_FALSE, and VkPhysicalDeviceDepthStencilResolveProperties::independentResolveNone is VK_FALSE, then the values of depthResolveMode and stencilResolveMode must be identical

• VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03186
If the VkFormat of pDepthStencilResolveAttachment has both depth and stencil components, VkPhysicalDeviceDepthStencilResolveProperties::independentResolve is VK_FALSE and VkPhysicalDeviceDepthStencilResolveProperties::independentResolveNone is VK_TRUE, then the values of depthResolveMode and stencilResolveMode must be identical or one of them must be VK_RESOLVE_MODE_NONE

• VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-04588
If the VkFormat of pDepthStencilResolveAttachment has a depth component, depthResolveMode must be a valid VkResolveModeFlagBits value

• VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-04589
If the VkFormat of pDepthStencilResolveAttachment has a stencil component, stencilResolveMode must be a valid VkResolveModeFlagBits value

Valid Usage (Implicit)
• VUID-VkSubpassDescriptionDepthStencilResolve-sType-sType
sType must be VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE

• VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-parameter
If pDepthStencilResolveAttachment is not NULL, pDepthStencilResolveAttachment must be a valid pointer to a valid VkAttachmentReference2 structure