C Specification

The VkCustomResolveCreateInfoEXT structure is defined as:

// Provided by VK_EXT_custom_resolve with VK_KHR_dynamic_rendering or VK_VERSION_1_3
typedef struct VkCustomResolveCreateInfoEXT {
    VkStructureType    sType;
    const void*        pNext;
    VkBool32           customResolve;
    uint32_t           colorAttachmentCount;
    const VkFormat*    pColorAttachmentFormats;
    VkFormat           depthAttachmentFormat;
    VkFormat           stencilAttachmentFormat;
} VkCustomResolveCreateInfoEXT;

Members

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

Description

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
Valid Usage (Implicit)

See Also

Document Notes

For more information, see the Vulkan Specification.

This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.

Copyright 2014-2026 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0