vulkan-3.21.1: Bindings to the Vulkan graphics API.
Safe HaskellNone
LanguageHaskell2010

Vulkan.Extensions.VK_KHR_dynamic_rendering

Description

Name

VK_KHR_dynamic_rendering - device extension

VK_KHR_dynamic_rendering

Name String
VK_KHR_dynamic_rendering
Extension Type
Device extension
Registered Extension Number
45
Revision
1
Extension and Version Dependencies
  • Requires support for Vulkan 1.0
  • Requires VK_KHR_depth_stencil_resolve to be enabled for any device-level functionality
  • Requires VK_KHR_get_physical_device_properties2 to be enabled for any device-level functionality
Deprecation state
Contact
Extension Proposal
VK_KHR_dynamic_rendering

Other Extension Metadata

Last Modified Date
2021-10-06
Interactions and External Dependencies
  • Promoted to Vulkan 1.3 Core
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 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

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:

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

CommandBufferInheritanceRenderingInfoKHR, PhysicalDeviceDynamicRenderingFeaturesKHR, PipelineRenderingCreateInfoKHR, RenderingAttachmentInfoKHR, RenderingFlagBitsKHR, RenderingFlagsKHR, RenderingInfoKHR, cmdBeginRenderingKHR, cmdEndRenderingKHR

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.

Synopsis

Documentation

data RenderingFragmentShadingRateAttachmentInfoKHR Source #

VkRenderingFragmentShadingRateAttachmentInfoKHR - Structure specifying fragment shading rate attachment information

Description

This structure can be included in the pNext chain of RenderingInfo to define a fragment shading rate attachment. If imageView is NULL_HANDLE, or if this structure is not specified, the implementation behaves as if a valid shading rate attachment was specified with all texels specifying a single pixel per fragment.

Valid Usage

Valid Usage (Implicit)

See Also

VK_KHR_dynamic_rendering, VK_KHR_fragment_shading_rate, Extent2D, ImageLayout, ImageView, StructureType

Constructors

RenderingFragmentShadingRateAttachmentInfoKHR 

Fields

Instances

Instances details
Show RenderingFragmentShadingRateAttachmentInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_dynamic_rendering

Storable RenderingFragmentShadingRateAttachmentInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_dynamic_rendering

FromCStruct RenderingFragmentShadingRateAttachmentInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_dynamic_rendering

ToCStruct RenderingFragmentShadingRateAttachmentInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_dynamic_rendering

Zero RenderingFragmentShadingRateAttachmentInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_dynamic_rendering

data RenderingFragmentDensityMapAttachmentInfoEXT Source #

VkRenderingFragmentDensityMapAttachmentInfoEXT - Structure specifying fragment shading rate attachment information

Description

This structure can be included in the pNext chain of RenderingInfo to define a fragment density map. If this structure is not included in the pNext chain, imageView is treated as NULL_HANDLE.

Valid Usage

Valid Usage (Implicit)

See Also

VK_EXT_fragment_density_map, VK_KHR_dynamic_rendering, ImageLayout, ImageView, StructureType

Constructors

RenderingFragmentDensityMapAttachmentInfoEXT 

Fields

  • imageView :: ImageView

    imageView is the image view that will be used as a fragment density map attachment.

  • imageLayout :: ImageLayout

    imageLayout is the layout that imageView will be in during rendering.

Instances

Instances details
Eq RenderingFragmentDensityMapAttachmentInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_dynamic_rendering

Show RenderingFragmentDensityMapAttachmentInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_dynamic_rendering

Storable RenderingFragmentDensityMapAttachmentInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_dynamic_rendering

FromCStruct RenderingFragmentDensityMapAttachmentInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_dynamic_rendering

ToCStruct RenderingFragmentDensityMapAttachmentInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_dynamic_rendering

Zero RenderingFragmentDensityMapAttachmentInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_dynamic_rendering

data AttachmentSampleCountInfoAMD Source #

VkAttachmentSampleCountInfoAMD - Structure specifying command buffer inheritance info for dynamic render pass instances

Description

If CommandBufferInheritanceInfo::renderPass is NULL_HANDLE, COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT is specified in CommandBufferBeginInfo::flags, and the pNext chain of CommandBufferInheritanceInfo includes AttachmentSampleCountInfoAMD, then this structure defines the sample counts of each attachment within the render pass instance. If AttachmentSampleCountInfoAMD is not included, the value of CommandBufferInheritanceRenderingInfo::rasterizationSamples is used as the sample count for each attachment. If CommandBufferInheritanceInfo::renderPass is not NULL_HANDLE, or COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT is not specified in CommandBufferBeginInfo::flags, parameters of this structure are ignored.

AttachmentSampleCountInfoAMD can also be included in the pNext chain of GraphicsPipelineCreateInfo. When a graphics pipeline is created without a RenderPass, if this structure is present in the pNext chain of GraphicsPipelineCreateInfo, it specifies the sample count of attachments used for rendering. If this structure is not specified, and the pipeline does not include a RenderPass, the value of PipelineMultisampleStateCreateInfo::rasterizationSamples is used as the sample count for each attachment. If a graphics pipeline is created with a valid RenderPass, parameters of this structure are ignored.

Valid Usage (Implicit)

See Also

VK_AMD_mixed_attachment_samples, VK_KHR_dynamic_rendering, VK_NV_framebuffer_mixed_samples, SampleCountFlagBits, StructureType

Constructors

AttachmentSampleCountInfoAMD 

Fields

data MultiviewPerViewAttributesInfoNVX Source #

VkMultiviewPerViewAttributesInfoNVX - Structure specifying the multiview per-attribute properties

Description

When dynamic render pass instances are being used, instead of specifying SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX or SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX in the subpass description flags, the per-attribute properties of the render pass instance must be specified by the MultiviewPerViewAttributesInfoNVX structure Include the MultiviewPerViewAttributesInfoNVX structure in the pNext chain of GraphicsPipelineCreateInfo when creating a graphics pipeline for dynamic rendering, RenderingInfo when starting a dynamic render pass instance, and CommandBufferInheritanceInfo when specifying the dynamic render pass instance parameters for secondary command buffers.

Valid Usage (Implicit)

See Also

VK_KHR_dynamic_rendering, VK_NVX_multiview_per_view_attributes, Bool32, StructureType

Constructors

MultiviewPerViewAttributesInfoNVX 

Fields

  • perViewAttributes :: Bool

    perViewAttributes specifies that shaders compiled for this pipeline write the attributes for all views in a single invocation of each vertex processing stage. All pipelines executed within a render pass instance that includes this bit must write per-view attributes to the *PerViewNV[] shader outputs, in addition to the non-per-view (e.g. Position) outputs.

  • perViewAttributesPositionXOnly :: Bool

    perViewAttributesPositionXOnly specifies that shaders compiled for this pipeline use per-view positions which only differ in value in the x component. Per-view viewport mask can also be used.

Instances

Instances details
Eq MultiviewPerViewAttributesInfoNVX Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_dynamic_rendering

Show MultiviewPerViewAttributesInfoNVX Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_dynamic_rendering

Storable MultiviewPerViewAttributesInfoNVX Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_dynamic_rendering

FromCStruct MultiviewPerViewAttributesInfoNVX Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_dynamic_rendering

ToCStruct MultiviewPerViewAttributesInfoNVX Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_dynamic_rendering

Zero MultiviewPerViewAttributesInfoNVX Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_dynamic_rendering

type KHR_DYNAMIC_RENDERING_EXTENSION_NAME = "VK_KHR_dynamic_rendering" Source #

pattern KHR_DYNAMIC_RENDERING_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #