VK_KHR_dynamic_rendering(3)

# VK_KHR_dynamic_rendering(3) Manual Page

## Name

VK_KHR_dynamic_rendering - device extension

Loading… please wait.

## Registered Extension Number

45

## Revision

1

## Ratification Status

Ratified

## Extension and Version Dependencies

VK_KHR_depth_stencil_resolve
and
VK_KHR_get_physical_device_properties2

## API Interactions

- Interacts with VK_AMD_mixed_attachment_samples

- Interacts with VK_EXT_fragment_density_map

- Interacts with VK_KHR_fragment_shading_rate

- Interacts with VK_NVX_multiview_per_view_attributes

- Interacts with VK_NV_framebuffer_mixed_samples

## Deprecation State

- Promoted to Vulkan 1.3

## Contact

- Tobias Hector tobski

## Extension Proposal

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

- vkCmdBeginRenderingKHR

- vkCmdEndRenderingKHR

## New Structures

- VkRenderingAttachmentInfoKHR

- VkRenderingInfoKHR

- Extending VkCommandBufferInheritanceInfo:

  - VkCommandBufferInheritanceRenderingInfoKHR

- Extending VkGraphicsPipelineCreateInfo:

  - VkPipelineRenderingCreateInfoKHR

- Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo:

  - VkPhysicalDeviceDynamicRenderingFeaturesKHR

If VK_AMD_mixed_attachment_samples is supported:

- Extending VkCommandBufferInheritanceInfo, VkGraphicsPipelineCreateInfo:

  - VkAttachmentSampleCountInfoAMD

If VK_EXT_fragment_density_map is supported:

- Extending VkRenderingInfo:

  - VkRenderingFragmentDensityMapAttachmentInfoEXT

If VK_KHR_fragment_shading_rate is supported:

- Extending VkRenderingInfo:

  - VkRenderingFragmentShadingRateAttachmentInfoKHR

If VK_NV_framebuffer_mixed_samples is supported:

- Extending VkCommandBufferInheritanceInfo, VkGraphicsPipelineCreateInfo:

  - VkAttachmentSampleCountInfoNV

If VK_NVX_multiview_per_view_attributes is supported:

- Extending VkCommandBufferInheritanceInfo, VkGraphicsPipelineCreateInfo, VkRenderingInfo:

  - VkMultiviewPerViewAttributesInfoNVX

## New Enums

- VkRenderingFlagBitsKHR

## New Bitmasks

- VkRenderingFlagsKHR

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

## See Also

VkCommandBufferInheritanceRenderingInfoKHR, VkPhysicalDeviceDynamicRenderingFeaturesKHR, VkPipelineRenderingCreateInfoKHR, VkRenderingAttachmentInfoKHR, VkRenderingFlagBitsKHR, VkRenderingFlagsKHR, VkRenderingInfoKHR, vkCmdBeginRenderingKHR, vkCmdEndRenderingKHR

## Document Notes

For more information, see the Vulkan Specification

This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.

## Copyright

Copyright 2014-2024 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0