VkCustomResolveCreateInfoEXT
The VkCustomResolveCreateInfoEXT structure is defined as:
typedef struct VkCustomResolveCreateInfoEXT {
VkStructureType sType;
const void* pNext;
VkBool32 customResolve;
uint32_t colorAttachmentCount;
const VkFormat* pColorAttachmentFormats;
VkFormat depthAttachmentFormat;
VkFormat stencilAttachmentFormat;
} VkCustomResolveCreateInfoEXT;
pub struct CustomResolveCreateInfoEXT {
s_type: vk::StructureType,
p_next: *const c_void,
custom_resolve: vk::Bool32,
color_attachment_count: u32,
p_color_attachment_formats: *const vk::Format,
depth_attachment_format: vk::Format,
stencil_attachment_format: vk::Format,
}
sTypeis a VkStructureType value identifying this structure.pNextisNULLor a pointer to a structure extending this structure.customResolveindicates whether this pipeline will be used for a resolve operation.colorAttachmentCountis the number of entries inpColorAttachmentFormats.pColorAttachmentFormatsis a pointer to an array of VkFormat values defining the format of color resolve attachments used in custom resolves in the same render pass.depthAttachmentFormatis a VkFormat value defining the format of the depth resolve attachment used in custom resolves in the same render pass.stencilAttachmentFormatis a VkFormat value defining the format of the stencil resolve attachment used in custom resolves in the same render pass.
If the pNext chain includes this structure for one of:
- a VkGraphicsPipelineCreateInfo for a pipeline created without a VkRenderPass
- a VkCommandBufferInheritanceInfo for a secondary command buffer within a render pass instance begun with vkCmdBeginRendering.
it specifies the formats used in custom resolves within the same render pass. It also specifies that the corresponding object will be used in a render pass which contains a custom resolve operation.
If the pNext chain includes this structure for a
VkShaderCreateInfoEXT for a fragment shader object, it only specifies
that the fragment shader will be used in a custom resolve operation.
If a graphics pipeline is created with a valid VkRenderPass, parameters of this structure are ignored.
If customResolve is VK_FALSE, the pipeline can only be used
outside the custom resolve section.
If customResolve is VK_TRUE, the pipeline can only be used
inside the custom resolve section.
When a dynamic render pass instance contains a custom resolve operation
and the dynamicRenderingUnusedAttachments feature is not enabled
, all pipelines used to draw in such render pass must include this
structure and have identical format information in it.
When a dynamic render pass does not contain a custom resolve operation
and the dynamicRenderingUnusedAttachments feature is not enabled
, all pipelines used to draw in such render pass must not include this
structure.
If the dynamicRenderingUnusedAttachments feature is enabled, then when this
structure is not included in the pNext chain for
VkGraphicsPipelineCreateInfo, customResolve is VK_FALSE,
colorAttachmentCount is 0, and depthAttachmentFormat and
stencilAttachmentFormat are VK_FORMAT_UNDEFINED.
If depthAttachmentFormat, stencilAttachmentFormat, or any
element of pColorAttachmentFormats is VK_FORMAT_UNDEFINED, it
indicates that the corresponding attachment is unused within the resolve
portion of the render pass.
Valid formats indicate that an attachment can be used - but it is still
valid to set the attachment to NULL when beginning rendering.
When passed as a pNext member to a VkShaderCreateInfoEXT struct
for use with fragment density maps, the colorAttachmentCount,
pColorAttachmentFormats, depthAttachmentFormat, and
stencilAttachmentFormat members of this struct are ignored.
When not passed as a pNext member, customResolve is
VK_FALSE.
Valid Usage
VUID-VkCustomResolveCreateInfoEXT-colorAttachmentCount-11507
colorAttachmentCount must be less than or equal to
maxColorAttachments
VUID-VkCustomResolveCreateInfoEXT-depthAttachmentFormat-11508
If depthAttachmentFormat is not VK_FORMAT_UNDEFINED, it
must be a format that includes a depth component
VUID-VkCustomResolveCreateInfoEXT-depthAttachmentFormat-11509
If depthAttachmentFormat is not VK_FORMAT_UNDEFINED, it
must be a format with potential format
features that include
VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkCustomResolveCreateInfoEXT-pColorAttachmentFormats-11510
If any element of pColorAttachmentFormats is not
VK_FORMAT_UNDEFINED, it must be a format with
potential format features that include
VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
, or VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV if the
linearColorAttachment feature
is enabled
VUID-VkCustomResolveCreateInfoEXT-stencilAttachmentFormat-11511
If stencilAttachmentFormat is not VK_FORMAT_UNDEFINED, it
must be a format that includes a stencil aspect
VUID-VkCustomResolveCreateInfoEXT-stencilAttachmentFormat-11512
If stencilAttachmentFormat is not VK_FORMAT_UNDEFINED, it
must be a format with potential format
features that include
VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkCustomResolveCreateInfoEXT-depthAttachmentFormat-11513
If depthAttachmentFormat is not VK_FORMAT_UNDEFINED and
stencilAttachmentFormat is not VK_FORMAT_UNDEFINED,
depthAttachmentFormat must equal stencilAttachmentFormat
Valid Usage (Implicit)
VUID-VkCustomResolveCreateInfoEXT-sType-sType
sType must be VK_STRUCTURE_TYPE_CUSTOM_RESOLVE_CREATE_INFO_EXT