Structures

VkCustomResolveCreateInfoEXT

Structure specifying format info for custom resolves

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;
  • sType is a VkStructureType value identifying this structure.
  • pNext is NULL or a pointer to a structure extending this structure.
  • customResolve indicates whether this pipeline will be used for a resolve operation.
  • colorAttachmentCount is the number of entries in pColorAttachmentFormats.
  • pColorAttachmentFormats is a pointer to an array of VkFormat values defining the format of color resolve attachments used in custom resolves in the same render pass.
  • depthAttachmentFormat is a VkFormat value defining the format of the depth resolve attachment used in custom resolves in the same render pass.
  • stencilAttachmentFormat is 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:

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-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