VK_EXT_rasterization_order_attachment_access
Other Extension Metadata
Last Modified Date
2026-01-16
IP Status
No known IP claims.
Contributors
- Tobias Hector, AMD
- Jan-Harald Fredriksen, Arm
Description
This extension extends the mechanism of input attachments to allow access to framebuffer attachments that are used both as input and as color or depth/stencil attachments from one fragment to the next, in rasterization order, without explicit synchronization.
New Structures
- Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo:
New Enums
New Enum Constants
VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAMEVK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION- Extending VkPipelineColorBlendStateCreateFlagBits:
VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT
- Extending VkPipelineDepthStencilStateCreateFlagBits:
VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXTVK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT
- Extending VkStructureType:
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT
- Extending VkSubpassDescriptionFlagBits:
VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXTVK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXTVK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT
Issues
1) What are the interactions with the VK_KHR_dynamic_rendering or VK_KHR_dynamic_rendering_local_read extensions?
RESOLVED
Render pass instances begun with vkCmdBeginRenderingKHR do not have input attachments and thus a different mechanism was needed to provide similar functionality in this case. This was provided by VK_KHR_dynamic_rendering_local_read, which enables reads from attachments and resources written by previous fragment shaders within a dynamic render pass.
Render pass instances begun with vkCmdBeginRenderingKHR do not have subpasses, and there is no equivalent to the following flag bits for these instances:
- VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT
- VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT
- VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT
Instead, the behavior is controlled only by the corresponding pipeline flag bits, i.e.:
- VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT
- VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT
- VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT
2) What is the interaction with the VK_EXT_shader_object extension?
RESOLVED
This functionality is not available for draw calls using shader objects because the VK_EXT_shader_object extension depends on VK_KHR_dynamic_rendering, and thus neither the subpass flags nor the pipeline flags defined in this extension can be specified.
Examples
None.
Version History
- Revision 1, 2022-07-04 (Jan-Harald Fredriksen)
- Initial draft
- Updated Issues section 2026-01-16