Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Name
VK_EXT_extended_dynamic_state2 - device extension
VK_EXT_extended_dynamic_state2
- Name String
VK_EXT_extended_dynamic_state2
- Extension Type
- Device extension
- Registered Extension Number
- 378
- Revision
- 1
- Ratification Status
- Not ratified
- Extension and Version Dependencies
- VK_KHR_get_physical_device_properties2 or Version 1.1
- Deprecation State
- Promoted to Vulkan 1.3
- Contact
Other Extension Metadata
- Last Modified Date
- 2021-04-12
- Interactions and External Dependencies
- Promoted to Vulkan 1.3 Core
- IP Status
- No known IP claims.
- Contributors
- Vikram Kushwaha, NVIDIA
- Piers Daniell, NVIDIA
- Jeff Bolz, NVIDIA
Description
This extension adds some more dynamic state to support applications that need to reduce the number of pipeline state objects they compile and bind.
New Commands
cmdSetLogicOpEXT
cmdSetPatchControlPointsEXT
cmdSetPrimitiveRestartEnableEXT
cmdSetRasterizerDiscardEnableEXT
New Structures
New Enum Constants
EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION
Extending
DynamicState
:Extending
StructureType
:
Promotion to Vulkan 1.3
This extension has been partially promoted. The dynamic state enumerants
DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT
,
DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT
, and
DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT
; and the corresponding
entry points in this extension are included in core Vulkan 1.3, with the
EXT suffix omitted. The enumerants and entry points for dynamic logic
operation and patch control points are not promoted, nor is the feature
structure. Extension interfaces that were promoted remain available as
aliases of the core functionality.
Version History
Revision 1, 2021-04-12 (Vikram Kushwaha)
- Internal revisions
See Also
PhysicalDeviceExtendedDynamicState2FeaturesEXT
,
cmdSetDepthBiasEnableEXT
, cmdSetLogicOpEXT
,
cmdSetPatchControlPointsEXT
, cmdSetPrimitiveRestartEnableEXT
,
cmdSetRasterizerDiscardEnableEXT
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
- cmdSetPatchControlPointsEXT :: forall io. MonadIO io => CommandBuffer -> ("patchControlPoints" ::: Word32) -> io ()
- cmdSetLogicOpEXT :: forall io. MonadIO io => CommandBuffer -> LogicOp -> io ()
- pattern DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT :: DynamicState
- pattern DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT :: DynamicState
- pattern DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT :: DynamicState
- cmdSetRasterizerDiscardEnableEXT :: MonadIO io => CommandBuffer -> ("rasterizerDiscardEnable" ::: Bool) -> io ()
- cmdSetDepthBiasEnableEXT :: MonadIO io => CommandBuffer -> ("depthBiasEnable" ::: Bool) -> io ()
- cmdSetPrimitiveRestartEnableEXT :: MonadIO io => CommandBuffer -> ("primitiveRestartEnable" ::: Bool) -> io ()
- data PhysicalDeviceExtendedDynamicState2FeaturesEXT = PhysicalDeviceExtendedDynamicState2FeaturesEXT {}
- type EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION = 1
- pattern EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION :: forall a. Integral a => a
- type EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME = "VK_EXT_extended_dynamic_state2"
- pattern EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
Documentation
cmdSetPatchControlPointsEXT Source #
:: forall io. MonadIO io | |
=> CommandBuffer |
|
-> ("patchControlPoints" ::: Word32) |
|
-> io () |
vkCmdSetPatchControlPointsEXT - Specify the number of control points per patch dynamically for a command buffer
Description
This command sets the number of control points per patch for subsequent
drawing commands when drawing using
shader objects,
or when the graphics pipeline is created with
DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT
set in
PipelineDynamicStateCreateInfo
::pDynamicStates
.
Otherwise, this state is specified by the
PipelineTessellationStateCreateInfo
::patchControlPoints
value used to create the currently active pipeline.
Valid Usage
At least one of the following must be true:
- The extendedDynamicState2PatchControlPoints feature is enabled
- The shaderObject feature is enabled
-
patchControlPoints
must be greater than zero and less than or equal toPhysicalDeviceLimits
::maxTessellationPatchSize
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 outside of a video coding scope
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 | Video Coding Scope | Supported Queue Types | Command Type |
---|---|---|---|---|
Primary Secondary | Both | Outside | Graphics | State |
See Also
VK_EXT_extended_dynamic_state2,
VK_EXT_shader_object,
CommandBuffer
:: forall io. MonadIO io | |
=> CommandBuffer |
|
-> LogicOp |
|
-> io () |
vkCmdSetLogicOpEXT - Select which logical operation to apply for blend state dynamically for a command buffer
Description
This command sets the logical operation for blend state for subsequent
drawing commands when drawing using
shader objects,
or when the graphics pipeline is created with
DYNAMIC_STATE_LOGIC_OP_EXT
set in
PipelineDynamicStateCreateInfo
::pDynamicStates
.
Otherwise, this state is specified by the
PipelineColorBlendStateCreateInfo
::logicOp
value used to create the currently active pipeline.
Valid Usage
At least one of the following must be true:
- The extendedDynamicState2LogicOp feature is enabled
- The shaderObject feature is enabled
Valid Usage (Implicit)
-
commandBuffer
must be a validCommandBuffer
handle
-
logicOp
must be a validLogicOp
value -
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 video coding scope
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 | Video Coding Scope | Supported Queue Types | Command Type |
---|---|---|---|---|
Primary Secondary | Both | Outside | Graphics | State |
See Also
VK_EXT_extended_dynamic_state2,
VK_EXT_shader_object,
CommandBuffer
,
LogicOp
pattern DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT :: DynamicState Source #
cmdSetRasterizerDiscardEnableEXT :: MonadIO io => CommandBuffer -> ("rasterizerDiscardEnable" ::: Bool) -> io () Source #
cmdSetDepthBiasEnableEXT :: MonadIO io => CommandBuffer -> ("depthBiasEnable" ::: Bool) -> io () Source #
cmdSetPrimitiveRestartEnableEXT :: MonadIO io => CommandBuffer -> ("primitiveRestartEnable" ::: Bool) -> io () Source #
data PhysicalDeviceExtendedDynamicState2FeaturesEXT Source #
VkPhysicalDeviceExtendedDynamicState2FeaturesEXT - Structure describing what extended dynamic state can be used
Members
This structure describes the following features:
Description
If the PhysicalDeviceExtendedDynamicState2FeaturesEXT
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. PhysicalDeviceExtendedDynamicState2FeaturesEXT
can also
be used in the pNext
chain of DeviceCreateInfo
to selectively enable these features.
Valid Usage (Implicit)
See Also
PhysicalDeviceExtendedDynamicState2FeaturesEXT | |
Instances
pattern EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION :: forall a. Integral a => a Source #
type EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME = "VK_EXT_extended_dynamic_state2" Source #
pattern EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #