Safe Haskell | None |
---|---|
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
- Extension and Version Dependencies
- Requires Vulkan 1.0
- Requires
VK_KHR_get_physical_device_properties2
- Contact
- 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
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:
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
- cmdBeginRenderingKHR :: forall a io. (Extendss RenderingInfoKHR a, PokeChain a, MonadIO io) => CommandBuffer -> RenderingInfoKHR a -> io ()
- cmdUseRenderingKHR :: forall a io r. (Extendss RenderingInfoKHR a, PokeChain a, MonadIO io) => CommandBuffer -> RenderingInfoKHR a -> io r -> io r
- cmdEndRenderingKHR :: forall io. MonadIO io => CommandBuffer -> io ()
- 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
- data PipelineRenderingCreateInfoKHR = PipelineRenderingCreateInfoKHR {}
- data RenderingInfoKHR (es :: [Type]) = RenderingInfoKHR {}
- data RenderingAttachmentInfoKHR = RenderingAttachmentInfoKHR {}
- data RenderingFragmentShadingRateAttachmentInfoKHR = RenderingFragmentShadingRateAttachmentInfoKHR {}
- data RenderingFragmentDensityMapAttachmentInfoEXT = RenderingFragmentDensityMapAttachmentInfoEXT {}
- data PhysicalDeviceDynamicRenderingFeaturesKHR = PhysicalDeviceDynamicRenderingFeaturesKHR {}
- data CommandBufferInheritanceRenderingInfoKHR = CommandBufferInheritanceRenderingInfoKHR {}
- data AttachmentSampleCountInfoAMD = AttachmentSampleCountInfoAMD {}
- data MultiviewPerViewAttributesInfoNVX = MultiviewPerViewAttributesInfoNVX {}
- type RenderingFlagsKHR = RenderingFlagBitsKHR
- newtype RenderingFlagBitsKHR where
- 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
:: forall a io. (Extendss RenderingInfoKHR a, PokeChain a, MonadIO io) | |
=> CommandBuffer |
|
-> RenderingInfoKHR a |
|
-> io () |
vkCmdBeginRenderingKHR - Begin a dynamic render pass instance
Description
After beginning a render pass instance, the command buffer is ready to record draw commands.
If pRenderingInfo->flags
includes RENDERING_RESUMING_BIT_KHR
then
this render pass is resumed from a render pass instance that has been
suspended earlier in
submission order.
Valid Usage
- The dynamicRendering feature must be enabled
- If
commandBuffer
is a secondary command buffer,pRenderingInfo->flags
must not includeRENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR
Valid Usage (Implicit)
-
commandBuffer
must be a validCommandBuffer
handle
-
pRenderingInfo
must be a valid pointer to a validRenderingInfoKHR
structure -
commandBuffer
must be in the recording state - The
CommandPool
thatcommandBuffer
was allocated from must support graphics operations - This command must only be called outside of a render pass instance
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Host access to the
CommandPool
thatcommandBuffer
was allocated from must be externally synchronized
Command Properties
'
Command Buffer Levels | Render Pass Scope | Supported Queue Types |
---|---|---|
Primary Secondary | Outside | Graphics |
See Also
cmdUseRenderingKHR :: forall a io r. (Extendss RenderingInfoKHR a, PokeChain a, MonadIO io) => CommandBuffer -> RenderingInfoKHR a -> io r -> io r Source #
This function will call the supplied action between calls to
cmdBeginRenderingKHR
and cmdEndRenderingKHR
Note that cmdEndRenderingKHR
is *not* called if an exception is thrown
by the inner action.
:: forall io. MonadIO io | |
=> CommandBuffer |
|
-> io () |
vkCmdEndRenderingKHR - End a dynamic render pass instance
Description
If the value of pRenderingInfo->flags
used to begin this render pass
instance included RENDERING_SUSPENDING_BIT_KHR
, then this render pass
is suspended and will be resumed later in
submission order.
Valid Usage
- The current render pass
instance must have been begun with
cmdBeginRenderingKHR
Valid Usage (Implicit)
-
commandBuffer
must be a validCommandBuffer
handle
-
commandBuffer
must be in the recording state - The
CommandPool
thatcommandBuffer
was allocated from must support graphics operations - This command must only be called inside of a render pass instance
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Host access to the
CommandPool
thatcommandBuffer
was allocated from must be externally synchronized
Command Properties
'
Command Buffer Levels | Render Pass Scope | Supported Queue Types |
---|---|---|
Primary Secondary | Inside | Graphics |
See Also
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 #
data PipelineRenderingCreateInfoKHR Source #
VkPipelineRenderingCreateInfoKHR - Structure specifying attachment formats
Description
When a pipeline is created without a RenderPass
,
if this structure is present in the pNext
chain of
GraphicsPipelineCreateInfo
, it specifies the
view mask and format of attachments used for rendering. If this
structure is not specified, and the pipeline does not include a
RenderPass
, viewMask
and
colorAttachmentCount
are 0
, and depthAttachmentFormat
and
stencilAttachmentFormat
are
FORMAT_UNDEFINED
. If a graphics pipeline is
created with a valid RenderPass
, parameters of
this structure are ignored.
If depthAttachmentFormat
, stencilAttachmentFormat
, or any element of
pColorAttachmentFormats
is
FORMAT_UNDEFINED
, it indicates that the
corresponding attachment is unused within the render pass. Valid formats
indicate that an attachment can be used - but it is still valid to set
the attachment to NULL
when beginning rendering.
Valid Usage
-
If any element of
pColorAttachmentFormats
is notFORMAT_UNDEFINED
, it must be a format with potential format features that includeFORMAT_FEATURE_COLOR_ATTACHMENT_BIT
-
If
depthAttachmentFormat
is notFORMAT_UNDEFINED
, it must be a format with potential format features that includeFORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
-
If
stencilAttachmentFormat
is notFORMAT_UNDEFINED
, it must be a format with potential format features that includeFORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
-
If
depthAttachmentFormat
is notFORMAT_UNDEFINED
andstencilAttachmentFormat
is notFORMAT_UNDEFINED
,depthAttachmentFormat
must equalstencilAttachmentFormat
- If the
multiview
feature is not enabled,
viewMask
must be0
- The index of
the most significant bit in
viewMask
must be less than maxMultiviewViewCount
Valid Usage (Implicit)
-
sType
must beSTRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR
-
If
colorAttachmentCount
is not0
,pColorAttachmentFormats
must be a valid pointer to an array ofcolorAttachmentCount
validFormat
values -
depthAttachmentFormat
must be a validFormat
value -
stencilAttachmentFormat
must be a validFormat
value
See Also
PipelineRenderingCreateInfoKHR | |
|
Instances
data RenderingInfoKHR (es :: [Type]) Source #
VkRenderingInfoKHR - Structure specifying render pass instance begin info
Description
If viewMask
is not 0
, multiview is enabled.
If there is an instance of
DeviceGroupRenderPassBeginInfo
included in the pNext
chain and its deviceCount
member is not 0
,
then renderArea
is ignored, and the render area is defined per-device
by that structure.
Each element of the pColorAttachments
array corresponds to an output
location in the shader, i.e. if the shader declares an output variable
decorated with a Location
value of X, then it uses the attachment
provided in pColorAttachments
[X]. If the imageView
member of any
element of pColorAttachments
is
NULL_HANDLE
, writes to the corresponding
location by a fragment are discarded.
Valid Usage
- If neither the
VK_AMD_mixed_attachment_samples
nor the
VK_NV_framebuffer_mixed_samples
extensions are enabled,
imageView
members ofpDepthAttachment
,pStencilAttachment
, and elements ofpColorAttachments
that are notNULL_HANDLE
must have been created with the samesampleCount
- If the
pNext
chain does not containDeviceGroupRenderPassBeginInfo
or itsdeviceRenderAreaCount
member is equal to 0,renderArea.offset.x
must be greater than or equal to 0 - If the
pNext
chain does not containDeviceGroupRenderPassBeginInfo
or itsdeviceRenderAreaCount
member is equal to 0,renderArea.offset.y
must be greater than or equal to 0 - If the
pNext
chain does not containDeviceGroupRenderPassBeginInfo
or itsdeviceRenderAreaCount
member is equal to 0, the width of theimageView
member of any element ofpColorAttachments
,pDepthAttachment
, orpStencilAttachment
that is notNULL_HANDLE
must be greater than or equal torenderArea.offset.x
+renderArea.extent.width
- If the
pNext
chain does not containDeviceGroupRenderPassBeginInfo
or itsdeviceRenderAreaCount
member is equal to 0, the height of theimageView
member of any element ofpColorAttachments
,pDepthAttachment
, orpStencilAttachment
that is notNULL_HANDLE
must be greater than or equal torenderArea.offset.y
+renderArea.extent.height
- If the
pNext
chain containsDeviceGroupRenderPassBeginInfo
, theoffset.x
member of each element ofpDeviceRenderAreas
must be greater than or equal to 0 - If the
pNext
chain containsDeviceGroupRenderPassBeginInfo
, theoffset.y
member of each element ofpDeviceRenderAreas
must be greater than or equal to 0 - If the
pNext
chain containsDeviceGroupRenderPassBeginInfo
, the width of theimageView
member of any element ofpColorAttachments
,pDepthAttachment
, orpStencilAttachment
that is notNULL_HANDLE
must be greater than or equal to the sum of theoffset.x
andextent.width
members of each element ofpDeviceRenderAreas
- If the
pNext
chain containsDeviceGroupRenderPassBeginInfo
, the height of theimageView
member of any element ofpColorAttachments
,pDepthAttachment
, orpStencilAttachment
that is notNULL_HANDLE
must be greater than or equal to the sum of theoffset.y
andextent.height
members of each element ofpDeviceRenderAreas
- If neither
pDepthAttachment
orpStencilAttachment
areNULL
and theimageView
member of either structure is notNULL_HANDLE
, theimageView
member of each structure must be the same - If neither
pDepthAttachment
orpStencilAttachment
areNULL
, and theresolveMode
member of each is notRESOLVE_MODE_NONE
, theresolveImageView
member of each structure must be the same - If
colorAttachmentCount
is not0
and theimageView
member of an element ofpColorAttachments
is notNULL_HANDLE
, thatimageView
must have been created withIMAGE_USAGE_COLOR_ATTACHMENT_BIT
- If
pDepthAttachment
is notNULL
andpDepthAttachment->imageView
is notNULL_HANDLE
,pDepthAttachment->imageView
must have been created withIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
- If
pStencilAttachment
is notNULL
andpStencilAttachment->imageView
is notNULL_HANDLE
,pStencilAttachment->imageView
must have been created with a stencil usage includingIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
- If
colorAttachmentCount
is not0
and theimageView
member of an element ofpColorAttachments
is notNULL_HANDLE
, thelayout
member of that element ofpColorAttachments
must not beIMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL
orIMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL
- If
colorAttachmentCount
is not0
and theimageView
member of an element ofpColorAttachments
is notNULL_HANDLE
, if theresolveMode
member of that element ofpColorAttachments
is notRESOLVE_MODE_NONE
, itsresolveImageLayout
member must not beIMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL
orIMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL
- If
pDepthAttachment
is notNULL
andpDepthAttachment->imageView
is notNULL_HANDLE
,pDepthAttachment->layout
must not beIMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
- If
pDepthAttachment
is notNULL
,pDepthAttachment->imageView
is notNULL_HANDLE
, andpDepthAttachment->resolveMode
is notRESOLVE_MODE_NONE
,pDepthAttachment->resolveImageLayout
must not beIMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
- If
pStencilAttachment
is notNULL
andpStencilAttachment->imageView
is notNULL_HANDLE
,pStencilAttachment->layout
must not beIMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
- If
pStencilAttachment
is notNULL
,pStencilAttachment->imageView
is notNULL_HANDLE
, andpStencilAttachment->resolveMode
is notRESOLVE_MODE_NONE
,pStencilAttachment->resolveImageLayout
must not beIMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
- If
colorAttachmentCount
is not0
and theimageView
member of an element ofpColorAttachments
is notNULL_HANDLE
, thelayout
member of that element ofpColorAttachments
must not beIMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL
orIMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL
- If
colorAttachmentCount
is not0
and theimageView
member of an element ofpColorAttachments
is notNULL_HANDLE
, if theresolveMode
member of that element ofpColorAttachments
is notRESOLVE_MODE_NONE
, itsresolveImageLayout
member must not beIMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL
orIMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL
- If
pDepthAttachment
is notNULL
,pDepthAttachment->imageView
is notNULL_HANDLE
, andpDepthAttachment->resolveMode
is notRESOLVE_MODE_NONE
,pDepthAttachment->resolveImageLayout
must not beIMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL
- If
pStencilAttachment
is notNULL
,pStencilAttachment->imageView
is notNULL_HANDLE
, andpStencilAttachment->resolveMode
is notRESOLVE_MODE_NONE
,pStencilAttachment->resolveImageLayout
must not beIMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL
- If
colorAttachmentCount
is not0
and theimageView
member of an element ofpColorAttachments
is notNULL_HANDLE
, thelayout
member of that element ofpColorAttachments
must not beIMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL
,IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL
,IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL
, orIMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
- If
colorAttachmentCount
is not0
and theimageView
member of an element ofpColorAttachments
is notNULL_HANDLE
, if theresolveMode
member of that element ofpColorAttachments
is notRESOLVE_MODE_NONE
, itsresolveImageLayout
member must not beIMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL
,IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL
,IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL
, orIMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
- If
pDepthAttachment
is notNULL
andpDepthAttachment->imageView
is notNULL_HANDLE
,pDepthAttachment->resolveMode
must be one of the bits set inPhysicalDeviceDepthStencilResolveProperties
::supportedDepthResolveModes
- If
pStencilAttachment
is notNULL
andpStencilAttachment->imageView
is notNULL_HANDLE
,pStencilAttachment->resolveMode
must be one of the bits set inPhysicalDeviceDepthStencilResolveProperties
::supportedStencilResolveModes
- If
pDepthAttachment
orpStencilAttachment
are both notNULL
,pDepthAttachment->imageView
andpStencilAttachment->imageView
are both notNULL_HANDLE
, andPhysicalDeviceDepthStencilResolveProperties
::independentResolveNone
isFALSE
, theresolveMode
of both structures must be the same value - If
pDepthAttachment
orpStencilAttachment
are both notNULL
,pDepthAttachment->imageView
andpStencilAttachment->imageView
are both notNULL_HANDLE
,PhysicalDeviceDepthStencilResolveProperties
::independentResolve
isFALSE
, and theresolveMode
of neither structure isRESOLVE_MODE_NONE
, theresolveMode
of both structures must be the same value -
colorAttachmentCount
must be less than or equal toPhysicalDeviceLimits
::maxColorAttachments
- If the
imageView
member of aRenderingFragmentDensityMapAttachmentInfoEXT
structure included in thepNext
chain is notNULL_HANDLE
, and non-subsample image feature is not enabled, validimageView
andresolveImageView
members ofpDepthAttachment
,pStencilAttachment
, and each element ofpColorAttachments
must be aImageView
created withIMAGE_CREATE_SUBSAMPLED_BIT_EXT
- If the
imageView
member of aRenderingFragmentDensityMapAttachmentInfoEXT
structure included in thepNext
chain is notNULL_HANDLE
, andviewMask
is not0
,imageView
must have alayerCount
greater than or equal to the index of the most significant bit inviewMask
- If the
imageView
member of aRenderingFragmentDensityMapAttachmentInfoEXT
structure included in thepNext
chain is notNULL_HANDLE
, andviewMask
is0
,imageView
must have alayerCount
equal to1
- If the
pNext
chain does not containDeviceGroupRenderPassBeginInfo
or itsdeviceRenderAreaCount
member is equal to 0 and theimageView
member of aRenderingFragmentDensityMapAttachmentInfoEXT
structure included in thepNext
chain is notNULL_HANDLE
,imageView
must have a width greater than or equal to \(\left\lceil{\frac{renderArea_{x}+renderArea_{width}}{maxFragmentDensityTexelSize_{width}}}\right\rceil\) - If the
pNext
chain contains aDeviceGroupRenderPassBeginInfo
structure, itsdeviceRenderAreaCount
member is not 0, and theimageView
member of aRenderingFragmentDensityMapAttachmentInfoEXT
structure included in thepNext
chain is notNULL_HANDLE
,imageView
must have a width greater than or equal to \(\left\lceil{\frac{pDeviceRenderAreas_{x}+pDeviceRenderAreas_{width}}{maxFragmentDensityTexelSize_{width}}}\right\rceil\) for each element ofpDeviceRenderAreas
- If the
pNext
chain does not containDeviceGroupRenderPassBeginInfo
or itsdeviceRenderAreaCount
member is equal to 0 and theimageView
member of aRenderingFragmentDensityMapAttachmentInfoEXT
structure included in thepNext
chain is notNULL_HANDLE
,imageView
must have a height greater than or equal to \(\left\lceil{\frac{renderArea_{y}+renderArea_{height}}{maxFragmentDensityTexelSize_{height}}}\right\rceil\) - If the
pNext
chain contains aDeviceGroupRenderPassBeginInfo
structure, itsdeviceRenderAreaCount
member is not 0, and theimageView
member of aRenderingFragmentDensityMapAttachmentInfoEXT
structure included in thepNext
chain is notNULL_HANDLE
,imageView
must have a height greater than or equal to \(\left\lceil{\frac{pDeviceRenderAreas_{y}+pDeviceRenderAreas_{height}}{maxFragmentDensityTexelSize_{height}}}\right\rceil\) for each element ofpDeviceRenderAreas
- If the
imageView
member of aRenderingFragmentDensityMapAttachmentInfoEXT
structure included in thepNext
chain is notNULL_HANDLE
, it must not be equal to theimageView
orresolveImageView
member ofpDepthAttachment
,pStencilAttachment
, or any element ofpColorAttachments
- If the
pNext
chain does not containDeviceGroupRenderPassBeginInfo
or itsdeviceRenderAreaCount
member is equal to 0 and theimageView
member of aRenderingFragmentShadingRateAttachmentInfoKHR
structure included in thepNext
chain is notNULL_HANDLE
,imageView
must have a width greater than or equal to \(\left\lceil{\frac{renderArea_{x}+renderArea_{width}}{shadingRateAttachmentTexelSize_{width}}}\right\rceil\) - If the
pNext
chain contains aDeviceGroupRenderPassBeginInfo
structure, itsdeviceRenderAreaCount
member is not 0, and theimageView
member of aRenderingFragmentShadingRateAttachmentInfoKHR
structure included in thepNext
chain is notNULL_HANDLE
,imageView
must have a width greater than or equal to \(\left\lceil{\frac{pDeviceRenderAreas_{x}+pDeviceRenderAreas_{width}}{shadingRateAttachmentTexelSize_{width}}}\right\rceil\) for each element ofpDeviceRenderAreas
- If the
pNext
chain does not containDeviceGroupRenderPassBeginInfo
or itsdeviceRenderAreaCount
member is equal to 0 and theimageView
member of aRenderingFragmentShadingRateAttachmentInfoKHR
structure included in thepNext
chain is notNULL_HANDLE
,imageView
must have a height greater than or equal to \(\left\lceil{\frac{renderArea_{y}+renderArea_{height}}{shadingRateAttachmentTexelSize_{height}}}\right\rceil\) - If the
pNext
chain contains aDeviceGroupRenderPassBeginInfo
structure, itsdeviceRenderAreaCount
member is not 0, and theimageView
member of aRenderingFragmentShadingRateAttachmentInfoKHR
structure included in thepNext
chain is notNULL_HANDLE
,imageView
must have a height greater than or equal to \(\left\lceil{\frac{pDeviceRenderAreas_{y}+pDeviceRenderAreas_{height}}{shadingRateAttachmentTexelSize_{height}}}\right\rceil\) for each element ofpDeviceRenderAreas
- If the
imageView
member of aRenderingFragmentShadingRateAttachmentInfoKHR
structure included in thepNext
chain is notNULL_HANDLE
, andviewMask
is0
,imageView
must have alayerCount
that is either equal to1
or greater than or equal tolayerCount
- If the
imageView
member of aRenderingFragmentShadingRateAttachmentInfoKHR
structure included in thepNext
chain is notNULL_HANDLE
, andviewMask
is not0
,imageView
must have alayerCount
that either equal to1
or greater than or equal to the index of the most significant bit inviewMask
- If the
imageView
member of aRenderingFragmentShadingRateAttachmentInfoKHR
structure included in thepNext
chain is notNULL_HANDLE
, it must not be equal to theimageView
orresolveImageView
member ofpDepthAttachment
,pStencilAttachment
, or any element ofpColorAttachments
- If the
imageView
member of aRenderingFragmentShadingRateAttachmentInfoKHR
structure included in thepNext
chain is notNULL_HANDLE
, it must not be equal to theimageView
member of aRenderingFragmentDensityMapAttachmentInfoEXT
structure included in thepNext
chain - If the
multiview
feature is not enabled,
viewMask
must be0
- The index of the most
significant bit in
viewMask
must be less than maxMultiviewViewCount
Valid Usage (Implicit)
-
sType
must beSTRUCTURE_TYPE_RENDERING_INFO_KHR
- Each
pNext
member of any structure (including this one) in thepNext
chain must be eitherNULL
or a pointer to a valid instance ofDeviceGroupRenderPassBeginInfo
,MultiviewPerViewAttributesInfoNVX
,RenderingFragmentDensityMapAttachmentInfoEXT
, orRenderingFragmentShadingRateAttachmentInfoKHR
- The
sType
value of each struct in thepNext
chain must be unique -
flags
must be a valid combination ofRenderingFlagBitsKHR
values - If
colorAttachmentCount
is not0
,pColorAttachments
must be a valid pointer to an array ofcolorAttachmentCount
validRenderingAttachmentInfoKHR
structures - If
pDepthAttachment
is notNULL
,pDepthAttachment
must be a valid pointer to a validRenderingAttachmentInfoKHR
structure - If
pStencilAttachment
is notNULL
,pStencilAttachment
must be a valid pointer to a validRenderingAttachmentInfoKHR
structure
See Also
VK_KHR_dynamic_rendering,
Rect2D
, RenderingAttachmentInfoKHR
,
RenderingFlagsKHR
, StructureType
,
cmdBeginRenderingKHR
RenderingInfoKHR | |
|
Instances
data RenderingAttachmentInfoKHR Source #
VkRenderingAttachmentInfoKHR - Structure specifying attachment information
Description
Values in imageView
are loaded and stored according to the values of
loadOp
and storeOp
, within the render area for each device specified
in RenderingInfoKHR
. If imageView
is
NULL_HANDLE
, other members of this
structure are ignored; writes to this attachment will be discarded, and
no load, store, or resolve operations will be performed.
If resolveMode
is
RESOLVE_MODE_NONE
, then
resolveImageView
is ignored. If resolveMode
is not
RESOLVE_MODE_NONE
, values in
resolveImageView
within the render area become undefined once
rendering begins. At the end of rendering, the color values written to
each pixel location in imageView
will be resolved according to
resolveMode
and stored into the the same location in
resolveImageView
.
Note
The resolve mode and store operation are independent; it is valid to write both resolved and unresolved values, and equally valid to discard the unresolved values while writing the resolved ones.
Store and resolve operations are only performed at the end of a render
pass instance that does not specify the RENDERING_SUSPENDING_BIT_KHR
flag.
Load operations are only performed at the beginning of a render pass
instance that does not specify the RENDERING_RESUMING_BIT_KHR
flag.
Image contents at the end of a suspended render pass instance remain defined for access by a resuming render pass instance.
Valid Usage
- If
imageView
is notNULL_HANDLE
and has a non-integer color format,resolveMode
must beRESOLVE_MODE_NONE
orRESOLVE_MODE_AVERAGE_BIT
- If
imageView
is notNULL_HANDLE
and has an integer color format,resolveMode
must beRESOLVE_MODE_NONE
orRESOLVE_MODE_SAMPLE_ZERO_BIT
- If
imageView
is notNULL_HANDLE
andresolveMode
is notRESOLVE_MODE_NONE
,imageView
must not have a sample count ofSAMPLE_COUNT_1_BIT
- If
imageView
is notNULL_HANDLE
andresolveMode
is notRESOLVE_MODE_NONE
,resolveImageView
must have a sample count ofSAMPLE_COUNT_1_BIT
- If
imageView
is notNULL_HANDLE
andresolveMode
is notRESOLVE_MODE_NONE
,imageView
andresolveImageView
must have the sameFormat
- If
imageView
is notNULL_HANDLE
,layout
must not beIMAGE_LAYOUT_UNDEFINED
,IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
,IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL
,IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
, orIMAGE_LAYOUT_PREINITIALIZED
- If
imageView
is notNULL_HANDLE
andresolveMode
is notRESOLVE_MODE_NONE
,resolveImageLayout
must not beIMAGE_LAYOUT_UNDEFINED
,IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL
,IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
,IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL
,IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
, orIMAGE_LAYOUT_PREINITIALIZED
- If
imageView
is notNULL_HANDLE
andresolveMode
is notRESOLVE_MODE_NONE
,resolveImageLayout
must not beIMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL
orIMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
- If
imageView
is notNULL_HANDLE
,layout
must not beIMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV
- If
imageView
is notNULL_HANDLE
andresolveMode
is notRESOLVE_MODE_NONE
,resolveImageLayout
must not beIMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV
- If
imageView
is notNULL_HANDLE
,layout
must not beIMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT
- If
imageView
is notNULL_HANDLE
andresolveMode
is notRESOLVE_MODE_NONE
,resolveImageLayout
must not beIMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT
- If
imageView
is notNULL_HANDLE
andresolveMode
is notRESOLVE_MODE_NONE
,resolveImageLayout
must not beIMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR
- If
imageView
is notNULL_HANDLE
,layout
must not beIMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR
- If
imageView
is notNULL_HANDLE
andresolveMode
is notRESOLVE_MODE_NONE
,resolveImageLayout
must not beIMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR
- If
imageView
is notNULL_HANDLE
,layout
must not beIMAGE_LAYOUT_PRESENT_SRC_KHR
- If
imageView
is notNULL_HANDLE
andresolveMode
is notRESOLVE_MODE_NONE
,resolveImageLayout
must not beIMAGE_LAYOUT_PRESENT_SRC_KHR
Valid Usage (Implicit)
-
sType
must beSTRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR
-
pNext
must beNULL
- If
imageView
is notNULL_HANDLE
,imageView
must be a validImageView
handle -
imageLayout
must be a validImageLayout
value - If
resolveMode
is not0
,resolveMode
must be a validResolveModeFlagBits
value - If
resolveImageView
is notNULL_HANDLE
,resolveImageView
must be a validImageView
handle -
resolveImageLayout
must be a validImageLayout
value -
loadOp
must be a validAttachmentLoadOp
value -
storeOp
must be a validAttachmentStoreOp
value -
clearValue
must be a validClearValue
union - Both of
imageView
, andresolveImageView
that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the sameDevice
See Also
VK_KHR_dynamic_rendering,
AttachmentLoadOp
,
AttachmentStoreOp
,
ClearValue
,
ImageLayout
,
ImageView
, RenderingInfoKHR
,
ResolveModeFlagBits
,
StructureType
RenderingAttachmentInfoKHR | |
|
Instances
Show RenderingAttachmentInfoKHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_dynamic_rendering showsPrec :: Int -> RenderingAttachmentInfoKHR -> ShowS # show :: RenderingAttachmentInfoKHR -> String # showList :: [RenderingAttachmentInfoKHR] -> ShowS # | |
ToCStruct RenderingAttachmentInfoKHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_dynamic_rendering withCStruct :: RenderingAttachmentInfoKHR -> (Ptr RenderingAttachmentInfoKHR -> IO b) -> IO b Source # pokeCStruct :: Ptr RenderingAttachmentInfoKHR -> RenderingAttachmentInfoKHR -> IO b -> IO b Source # withZeroCStruct :: (Ptr RenderingAttachmentInfoKHR -> IO b) -> IO b Source # pokeZeroCStruct :: Ptr RenderingAttachmentInfoKHR -> IO b -> IO b Source # cStructSize :: Int Source # | |
Zero RenderingAttachmentInfoKHR Source # | |
data RenderingFragmentShadingRateAttachmentInfoKHR Source #
VkRenderingFragmentShadingRateAttachmentInfoKHR - Structure specifying fragment shading rate attachment information
Description
This structure can be included in the pNext
chain of
RenderingInfoKHR
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
RenderingInfoKHR
to define a fragment density map. If imageView
is
NULL_HANDLE
, or if this structure is not
specified, imageView
is 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
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 PhysicalDeviceDynamicRenderingFeaturesKHR Source #
VkPhysicalDeviceDynamicRenderingFeaturesKHR - Structure indicating support for dynamic render pass instances
Members
The members of the PhysicalDeviceDynamicRenderingFeaturesKHR
structure
describe the following features:
Description
If the PhysicalDeviceDynamicRenderingFeaturesKHR
structure is included
in the pNext
chain of the
PhysicalDeviceFeatures2
structure passed to
getPhysicalDeviceFeatures2
,
it is filled in to indicate whether each corresponding feature is
supported. PhysicalDeviceDynamicRenderingFeaturesKHR
can also be
used in the pNext
chain of DeviceCreateInfo
to
selectively enable these features.
Valid Usage (Implicit)
See Also
PhysicalDeviceDynamicRenderingFeaturesKHR | |
|
Instances
data CommandBufferInheritanceRenderingInfoKHR Source #
VkCommandBufferInheritanceRenderingInfoKHR - Structure specifying command buffer inheritance info for dynamic render pass instances
Description
If the pNext
chain of
CommandBufferInheritanceInfo
includes a
CommandBufferInheritanceRenderingInfoKHR
structure, then that
structure controls parameters of dynamic render pass instances that the
CommandBuffer
can be executed within. 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.
If colorAttachmentCount
is 0
and the
variableMultisampleRate
feature is enabled, rasterizationSamples
is ignored.
If depthAttachmentFormat
, stencilAttachmentFormat
, or any element of
pColorAttachmentFormats
is
FORMAT_UNDEFINED
, it indicates that the
corresponding attachment is unused within the render pass.
Valid Usage
-
If
colorAttachmentCount
is not0
,rasterizationSamples
must be a validSampleCountFlagBits
value
-
If the
variableMultisampleRate
feature is not enabled,
rasterizationSamples
must be a validSampleCountFlagBits
value -
If any element of
pColorAttachmentFormats
is notFORMAT_UNDEFINED
, it must be a format with potential format features that includeFORMAT_FEATURE_COLOR_ATTACHMENT_BIT
-
If
depthAttachmentFormat
is notFORMAT_UNDEFINED
, it must be a format with potential format features that includeFORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
-
If
stencilAttachmentFormat
is notFORMAT_UNDEFINED
, it must be a format with potential format features that includeFORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
-
If
depthAttachmentFormat
is notFORMAT_UNDEFINED
andstencilAttachmentFormat
is notFORMAT_UNDEFINED
,depthAttachmentFormat
must equalstencilAttachmentFormat
- If
the
multiview
feature is not enabled,
viewMask
must be0
- The
index of the most significant bit in
viewMask
must be less than maxMultiviewViewCount
Valid Usage (Implicit)
-
flags
must be a valid combination ofRenderingFlagBitsKHR
values -
If
colorAttachmentCount
is not0
,pColorAttachmentFormats
must be a valid pointer to an array ofcolorAttachmentCount
validFormat
values -
depthAttachmentFormat
must be a validFormat
value -
stencilAttachmentFormat
must be a validFormat
value -
If
rasterizationSamples
is not0
,rasterizationSamples
must be a validSampleCountFlagBits
value
See Also
VK_KHR_dynamic_rendering,
Format
, RenderingFlagsKHR
,
SampleCountFlagBits
,
StructureType
CommandBufferInheritanceRenderingInfoKHR | |
|
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
CommandBufferInheritanceRenderingInfoKHR
::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)
-
sType
must beSTRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD
-
pColorAttachmentSamples
must be a valid pointer to an array ofcolorAttachmentCount
valid orNULL_HANDLE
SampleCountFlagBits
values -
If
depthStencilAttachmentSamples
is not0
,depthStencilAttachmentSamples
must be a validSampleCountFlagBits
value -
colorAttachmentCount
must be greater than0
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-attibute 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, RenderingInfoKHR
when
starting a dynamic render pass instance, and
CommandBufferInheritanceInfo
when
specifying the dynamic render pass instance parameters for secondary
command buffers.
Valid Usage
Valid Usage (Implicit)
-
sType
must beSTRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX
See Also
VK_KHR_dynamic_rendering,
VK_NVX_multiview_per_view_attributes,
Bool32
,
StructureType
MultiviewPerViewAttributesInfoNVX | |
|
Instances
newtype RenderingFlagBitsKHR Source #
VkRenderingFlagBitsKHR - Bitmask specifying additional properties of a dynamic render pass instance
Description
The contents of pRenderingInfo
must match between suspended render
pass instances and the render pass instances that resume them, other
than the presence or absence of the RENDERING_RESUMING_BIT_KHR
,
RENDERING_SUSPENDING_BIT_KHR
, and
RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR
flags. No action
or synchronization commands, or other render pass instances, are allowed
between suspending and resuming render pass instances.
See Also
pattern RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR :: RenderingFlagBitsKHR |
|
pattern RENDERING_SUSPENDING_BIT_KHR :: RenderingFlagBitsKHR |
|
pattern RENDERING_RESUMING_BIT_KHR :: RenderingFlagBitsKHR |
|
Instances
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 #