Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
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
- Ratification Status
- Ratified
- Extension and Version Dependencies
- VK_KHR_depth_stencil_resolve and VK_KHR_get_physical_device_properties2
- Deprecation State
- Promoted to Vulkan 1.3
- 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
RenderingInfoKHR
Extending
CommandBufferInheritanceInfo
:Extending
GraphicsPipelineCreateInfo
:Extending
PhysicalDeviceFeatures2
,DeviceCreateInfo
:
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
KHR_DYNAMIC_RENDERING_SPEC_VERSION
Extending
AttachmentStoreOp
:Extending
StructureType
:
If VK_AMD_mixed_attachment_samples is supported:
If VK_EXT_fragment_density_map is supported:
Extending
PipelineCreateFlagBits
:Extending
StructureType
:
If VK_KHR_fragment_shading_rate is supported:
Extending
PipelineCreateFlagBits
:Extending
StructureType
:
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
- pattern STRUCTURE_TYPE_RENDERING_INFO_KHR :: StructureType
- pattern STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR :: StructureType
- pattern STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR :: StructureType
- pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR :: StructureType
- pattern STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR :: StructureType
- pattern ATTACHMENT_STORE_OP_NONE_KHR :: AttachmentStoreOp
- pattern PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR :: PipelineCreateFlagBits
- pattern PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT :: PipelineCreateFlagBits
- pattern STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV :: StructureType
- cmdBeginRenderingKHR :: forall {a :: [Type]} {io}. (Extendss RenderingInfo a, PokeChain a, MonadIO io) => CommandBuffer -> RenderingInfo a -> io ()
- cmdEndRenderingKHR :: MonadIO io => CommandBuffer -> io ()
- data RenderingFragmentShadingRateAttachmentInfoKHR = RenderingFragmentShadingRateAttachmentInfoKHR {}
- data RenderingFragmentDensityMapAttachmentInfoEXT = RenderingFragmentDensityMapAttachmentInfoEXT {}
- data AttachmentSampleCountInfoAMD = AttachmentSampleCountInfoAMD {}
- data MultiviewPerViewAttributesInfoNVX = MultiviewPerViewAttributesInfoNVX {}
- type RenderingFlagsKHR = RenderingFlags
- type RenderingFlagBitsKHR = RenderingFlagBits
- type PipelineRenderingCreateInfoKHR = PipelineRenderingCreateInfo
- type RenderingInfoKHR = RenderingInfo
- type RenderingAttachmentInfoKHR = RenderingAttachmentInfo
- type PhysicalDeviceDynamicRenderingFeaturesKHR = PhysicalDeviceDynamicRenderingFeatures
- type CommandBufferInheritanceRenderingInfoKHR = CommandBufferInheritanceRenderingInfo
- type AttachmentSampleCountInfoNV = AttachmentSampleCountInfoAMD
- type KHR_DYNAMIC_RENDERING_SPEC_VERSION = 1
- pattern KHR_DYNAMIC_RENDERING_SPEC_VERSION :: forall a. Integral a => a
- type KHR_DYNAMIC_RENDERING_EXTENSION_NAME = "VK_KHR_dynamic_rendering"
- pattern KHR_DYNAMIC_RENDERING_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
Documentation
pattern STRUCTURE_TYPE_RENDERING_INFO_KHR :: StructureType Source #
pattern ATTACHMENT_STORE_OP_NONE_KHR :: AttachmentStoreOp Source #
pattern PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR :: PipelineCreateFlagBits Source #
pattern PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT :: PipelineCreateFlagBits Source #
cmdBeginRenderingKHR :: forall {a :: [Type]} {io}. (Extendss RenderingInfo a, PokeChain a, MonadIO io) => CommandBuffer -> RenderingInfo a -> io () Source #
cmdEndRenderingKHR :: MonadIO io => CommandBuffer -> io () Source #
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
-
If
imageView
is notNULL_HANDLE
,layout
must beIMAGE_LAYOUT_GENERAL
orIMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR
-
If
imageView
is notNULL_HANDLE
, it must have been created withIMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
-
If
imageView
is notNULL_HANDLE
,shadingRateAttachmentTexelSize.width
must be a power of two value -
If
imageView
is notNULL_HANDLE
,shadingRateAttachmentTexelSize.width
must be less than or equal to maxFragmentShadingRateAttachmentTexelSize.width -
If
imageView
is notNULL_HANDLE
,shadingRateAttachmentTexelSize.width
must be greater than or equal to minFragmentShadingRateAttachmentTexelSize.width -
If
imageView
is notNULL_HANDLE
,shadingRateAttachmentTexelSize.height
must be a power of two value -
If
imageView
is notNULL_HANDLE
,shadingRateAttachmentTexelSize.height
must be less than or equal to maxFragmentShadingRateAttachmentTexelSize.height -
If
imageView
is notNULL_HANDLE
,shadingRateAttachmentTexelSize.height
must be greater than or equal to minFragmentShadingRateAttachmentTexelSize.height -
If
imageView
is notNULL_HANDLE
, the quotient ofshadingRateAttachmentTexelSize.width
andshadingRateAttachmentTexelSize.height
must be less than or equal to maxFragmentShadingRateAttachmentTexelSizeAspectRatio -
If
imageView
is notNULL_HANDLE
, the quotient ofshadingRateAttachmentTexelSize.height
andshadingRateAttachmentTexelSize.width
must be less than or equal to maxFragmentShadingRateAttachmentTexelSizeAspectRatio
Valid Usage (Implicit)
-
If
imageView
is notNULL_HANDLE
,imageView
must be a validImageView
handle -
imageLayout
must be a validImageLayout
value
See Also
VK_KHR_dynamic_rendering,
VK_KHR_fragment_shading_rate,
Extent2D
,
ImageLayout
,
ImageView
,
StructureType
RenderingFragmentShadingRateAttachmentInfoKHR | |
|
Instances
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
-
If
imageView
is notNULL_HANDLE
,layout
must beIMAGE_LAYOUT_GENERAL
orIMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT
-
If
imageView
is notNULL_HANDLE
, it must have been created withIMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT
-
If
imageView
is notNULL_HANDLE
, it must not have been created withIMAGE_CREATE_SUBSAMPLED_BIT_EXT
-
If
VK_KHR_multiview
is not enabled,
PhysicalDeviceProperties
::apiVersion
is less than Vulkan 1.1, andimageView
is notNULL_HANDLE
, it must have alayerCount
equal to1
Valid Usage (Implicit)
-
imageView
must be a validImageView
handle -
imageLayout
must be a validImageLayout
value
See Also
VK_EXT_fragment_density_map,
VK_KHR_dynamic_rendering,
ImageLayout
,
ImageView
,
StructureType
RenderingFragmentDensityMapAttachmentInfoEXT | |
|
Instances
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 included 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
AttachmentSampleCountInfoAMD | |
|
Instances
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
MultiviewPerViewAttributesInfoNVX | |
|
Instances
type RenderingFlagsKHR = RenderingFlags Source #
type RenderingInfoKHR = RenderingInfo Source #
type KHR_DYNAMIC_RENDERING_SPEC_VERSION = 1 Source #
pattern KHR_DYNAMIC_RENDERING_SPEC_VERSION :: forall a. Integral a => a Source #
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 #