VK_KHR_dynamic_rendering

Other Extension Metadata

Last Modified Date

2021-10-06

Contributors
  • Tobias Hector, AMD
  • Arseny Kapoulkine, Roblox
  • François Duranleau, Gameloft
  • Stuart Smith, AMD
  • Hai Nguyen, Google
  • Jean-François Roy, Google
  • Jeff Leger, Qualcomm
  • Jan-Harald Fredriksen, Arm
  • Piers Daniell, Nvidia
  • James Fitzpatrick, Imagination
  • Piotr Byszewski, Mobica
  • Jesse Hall, Google
  • Mike Blumenkrantz, Valve

Description

This extension allows applications to create single-pass render pass instances without needing to create render pass objects or framebuffers. Dynamic render passes can also span across multiple primary command buffers, rather than relying on secondary command buffers.

This extension also incorporates VK_ATTACHMENT_STORE_OP_NONE_KHR from VK_QCOM_render_pass_store_ops, enabling applications to avoid unnecessary synchronization when an attachment is not written during a render pass.

New Commands

New Structures

If VK_AMD_mixed_attachment_samples is supported:

If VK_EXT_fragment_density_map is supported:

If VK_KHR_fragment_shading_rate is supported:

If VK_NV_framebuffer_mixed_samples is supported:

If VK_NVX_multiview_per_view_attributes is supported:

New Enums

New Bitmasks

New Enum Constants

  • VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME
  • VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION
  • Extending VkAttachmentStoreOp:
    • VK_ATTACHMENT_STORE_OP_NONE_KHR
  • Extending VkStructureType:
    • VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR
    • VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR
    • VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR
    • VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR
    • VK_STRUCTURE_TYPE_RENDERING_INFO_KHR

If VK_AMD_mixed_attachment_samples is supported:

  • Extending VkStructureType:
    • VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD

If VK_EXT_fragment_density_map is supported:

  • Extending VkPipelineCreateFlagBits:
    • VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
    • VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
  • Extending VkStructureType:
    • VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT

If VK_KHR_fragment_shading_rate is supported:

  • Extending VkPipelineCreateFlagBits:
    • VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
    • VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
  • Extending VkStructureType:
    • VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR

If VK_NV_framebuffer_mixed_samples is supported:

  • Extending VkStructureType:
    • VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV

If VK_NVX_multiview_per_view_attributes is supported:

  • Extending VkStructureType:
    • VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX

Promotion to Vulkan 1.3

Functionality in this extension is included in core Vulkan 1.3, with the KHR suffix omitted. The original type, enum and command names are still available as aliases of the core functionality.

Version History

  • Revision 1, 2021-10-06 (Tobias Hector)
    • Initial revision