| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Vulkan.Extensions.VK_EXT_extended_dynamic_state2
Description
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
- Ratified
- Extension and Version Dependencies
- VK_KHR_get_physical_device_properties2 or Vulkan Version 1.1
- Deprecation State
- Promoted to Vulkan 1.3
- Contact
Other Extension Metadata
- Last Modified Date
- 2021-04-12
- 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
cmdSetLogicOpEXTcmdSetPatchControlPointsEXTcmdSetPrimitiveRestartEnableEXTcmdSetRasterizerDiscardEnableEXT
New Structures
New Enum Constants
EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSIONExtending
DynamicState:Extending
StructureType:
Promotion to Vulkan 1.3
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
commands in this extension are included in core Vulkan 1.3, with the EXT
suffix omitted. The enumerants and commands 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
No cross-references are available
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 :: MonadIO io => CommandBuffer -> ("patchControlPoints" ::: Word32) -> io ()
- cmdSetLogicOpEXT :: 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 :: Integral a => a
- type EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME = "VK_EXT_extended_dynamic_state2"
- pattern EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME :: (Eq a, IsString a) => a
Documentation
cmdSetPatchControlPointsEXT Source #
Arguments
| :: 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
-
patchControlPointsmust be greater than zero and less than or equal toPhysicalDeviceLimits::maxTessellationPatchSize
Valid Usage (Implicit)
-
commandBuffermust be a validCommandBufferhandle
-
commandBuffermust be in the recording state - The
CommandPoolthatcommandBufferwas allocated from must supportQUEUE_GRAPHICS_BIToperations - This command must only be called outside of a video coding scope
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
- Host access to the
CommandPoolthatcommandBufferwas 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 | VK_QUEUE_GRAPHICS_BIT | State |
Conditional Rendering
vkCmdSetPatchControlPointsEXT is not affected by conditional rendering
See Also
VK_EXT_extended_dynamic_state2,
VK_EXT_shader_object,
CommandBuffer
Arguments
| :: 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)
-
commandBuffermust be a validCommandBufferhandle
-
logicOpmust be a validLogicOpvalue -
commandBuffermust be in the recording state - The
CommandPoolthatcommandBufferwas allocated from must supportQUEUE_GRAPHICS_BIToperations - This command must only be called outside of a video coding scope
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
- Host access to the
CommandPoolthatcommandBufferwas 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 | VK_QUEUE_GRAPHICS_BIT | State |
Conditional Rendering
vkCmdSetLogicOpEXT is not affected by conditional rendering
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. If the application wishes to use a
Device with any features described by
PhysicalDeviceExtendedDynamicState2FeaturesEXT, it must add an
instance of the structure, with the desired feature members set to
TRUE, to the pNext chain of
DeviceCreateInfo when creating the
Device.
Valid Usage (Implicit)
See Also
Constructors
| PhysicalDeviceExtendedDynamicState2FeaturesEXT | |
Fields | |
Instances
pattern EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION :: 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 :: (Eq a, IsString a) => a Source #