VkSubpassDescriptionDepthStencilResolve
The VkSubpassDescriptionDepthStencilResolve
structure is defined as:
typedef struct VkSubpassDescriptionDepthStencilResolve {
VkStructureType sType;
const void* pNext;
VkResolveModeFlagBits depthResolveMode;
VkResolveModeFlagBits stencilResolveMode;
const VkAttachmentReference2* pDepthStencilResolveAttachment;
} VkSubpassDescriptionDepthStencilResolve;
or the equivalent
typedef VkSubpassDescriptionDepthStencilResolve VkSubpassDescriptionDepthStencilResolveKHR;
sType
is a VkStructureType value identifying this structure.pNext
isNULL
or a pointer to a structure extending this structure.depthResolveMode
is a VkResolveModeFlagBits value describing the depth resolve mode.stencilResolveMode
is a VkResolveModeFlagBits value describing the stencil resolve mode.pDepthStencilResolveAttachment
isNULL
or a pointer to a VkAttachmentReference2 structure defining the depth/stencil resolve attachment for this subpass and its layout.
If the pNext
chain of VkSubpassDescription2 includes a
VkSubpassDescriptionDepthStencilResolve
structure, then that structure
describes multisample resolve operations
for the depth/stencil attachment in a subpass.
If this structure is not included in the pNext
chain of
VkSubpassDescription2, or if it is and either
pDepthStencilResolveAttachment
is NULL
or its attachment index is
VK_ATTACHMENT_UNUSED
, it indicates that no depth/stencil resolve
attachment will be used in the subpass.
Valid Usage
VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03177
If pDepthStencilResolveAttachment
is not NULL
and does not have
the value VK_ATTACHMENT_UNUSED
, pDepthStencilAttachment
must not be NULL
or have the value VK_ATTACHMENT_UNUSED
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 an image format
whose potential format features contain
VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03181
If pDepthStencilResolveAttachment
is not NULL
and does not have
the value VK_ATTACHMENT_UNUSED
and VkFormat of
pDepthStencilResolveAttachment
has a depth component, then the
VkFormat of pDepthStencilAttachment
must have a depth
component with the same number of bits and numeric format
VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03182
If pDepthStencilResolveAttachment
is not NULL
and does not have
the value VK_ATTACHMENT_UNUSED
, and VkFormat of
pDepthStencilResolveAttachment
has a stencil component, then the
VkFormat of pDepthStencilAttachment
must have a stencil
component with the same number of bits and numeric format
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-depthResolveMode-03183
If pDepthStencilResolveAttachment
is not NULL
and does not have
the value VK_ATTACHMENT_UNUSED
and the VkFormat of
pDepthStencilResolveAttachment
has a depth component, then the
value of depthResolveMode
must be one of the bits set in
VkPhysicalDeviceDepthStencilResolveProperties::supportedDepthResolveModes
or VK_RESOLVE_MODE_NONE
VUID-VkSubpassDescriptionDepthStencilResolve-stencilResolveMode-03184
If pDepthStencilResolveAttachment
is not NULL
and does not have
the value VK_ATTACHMENT_UNUSED
and the VkFormat of
pDepthStencilResolveAttachment
has a stencil component, then the
value of stencilResolveMode
must be one of the bits set in
VkPhysicalDeviceDepthStencilResolveProperties::supportedStencilResolveModes
or VK_RESOLVE_MODE_NONE
VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03185
If pDepthStencilResolveAttachment
is not NULL
and does not have
the value VK_ATTACHMENT_UNUSED
, 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 pDepthStencilResolveAttachment
is not NULL
and does not have
the value VK_ATTACHMENT_UNUSED
, 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-pNext-06873
If the pNext
chain of VkSubpassDescription2 includes a
VkMultisampledRenderToSingleSampledInfoEXT
structure, the
multisampledRenderToSingleSampledEnable
field is VK_TRUE
,
and pDepthStencilAttachment
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-pNext-06874
If the pNext
chain of VkSubpassDescription2 includes a
VkMultisampledRenderToSingleSampledInfoEXT
structure whose
multisampledRenderToSingleSampledEnable
field is VK_TRUE
,
and pDepthStencilAttachment
is not NULL
, does not have the value
VK_ATTACHMENT_UNUSED
, and has a VkFormat that has a depth
component, then the value of depthResolveMode
must be one of the
bits set in
VkPhysicalDeviceDepthStencilResolveProperties::supportedDepthResolveModes
or VK_RESOLVE_MODE_NONE
VUID-VkSubpassDescriptionDepthStencilResolve-pNext-06875
If the pNext
chain of VkSubpassDescription2 includes a
VkMultisampledRenderToSingleSampledInfoEXT
structure whose
multisampledRenderToSingleSampledEnable
field is VK_TRUE
,
and pDepthStencilAttachment
is not NULL
, does not have the value
VK_ATTACHMENT_UNUSED
, and has a VkFormat with a stencil
component, then the value of stencilResolveMode
must be one of
the bits set in
VkPhysicalDeviceDepthStencilResolveProperties::supportedStencilResolveModes
or VK_RESOLVE_MODE_NONE
VUID-VkSubpassDescriptionDepthStencilResolve-pNext-06876
If the pNext
chain of VkSubpassDescription2 includes a
VkMultisampledRenderToSingleSampledInfoEXT
structure whose
multisampledRenderToSingleSampledEnable
field is VK_TRUE
,
pDepthStencilAttachment
is not NULL
, does not have the value
VK_ATTACHMENT_UNUSED
, and has a VkFormat with both depth and
stencil components, and both
VkPhysicalDeviceDepthStencilResolveProperties::independentResolve
and
VkPhysicalDeviceDepthStencilResolveProperties::independentResolveNone
are VK_FALSE
, then the values of depthResolveMode
and
stencilResolveMode
must be identical
VUID-VkSubpassDescriptionDepthStencilResolve-pNext-06877
If the pNext
chain of VkSubpassDescription2 includes a
VkMultisampledRenderToSingleSampledInfoEXT
structure whose
multisampledRenderToSingleSampledEnable
field is VK_TRUE
,
pDepthStencilAttachment
is not NULL
, does not have the value
VK_ATTACHMENT_UNUSED
, and has a VkFormat with 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
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