This document proposes adding support for setting attachment feedback loops dynamically.

1. Problem Statement

VK_EXT_attachment_feedback_loop_layout added functionality for handling feedback loops as a static pipeline state. Recent advances in the Vulkan API have moved towards having dynamic states for every corresponding static pipeline state, but there is still no dynamic state for attachment feedback loops.

This proposal aims to provide this functionality.

2. Solution Space

This functionality cannot be provided in any other way.

3. Proposal

3.1. API Features

The following features are exposed by this extension:

typedef struct VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT {
    VkStructureType    sType;
    void*              pNext;
    VkBool32           attachmentFeedbackLoopDynamicState;
} VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT;

attachmentFeedbackLoopDynamicState is the core feature enabling this extension’s functionality.

4. Examples

As an example, if an application creates a graphics pipeline using VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT, vkCmdSetAttachmentFeedbackLoopEnableEXT can then be used to dynamically enable feedback loops on a per-aspect basis.

5. Issues

No known issues.