Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Name
VK_EXT_extended_dynamic_state - device extension
VK_EXT_extended_dynamic_state
- Name String
VK_EXT_extended_dynamic_state
- Extension Type
- Device extension
- Registered Extension Number
- 268
- 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
- 2019-12-09
- Interactions and External Dependencies
- Promoted to Vulkan 1.3 Core
- IP Status
- No known IP claims.
- Contributors
- Dan Ginsburg, Valve Corporation
- Graeme Leese, Broadcom
- Hans-Kristian Arntzen, Valve Corporation
- Jan-Harald Fredriksen, Arm Limited
- Faith Ekstrand, Intel
- Jeff Bolz, NVIDIA
- Jesse Hall, Google
- Philip Rebohle, Valve Corporation
- Stuart Smith, Imagination Technologies
- Tobias Hector, AMD
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
cmdSetCullModeEXT
cmdSetDepthBoundsTestEnableEXT
cmdSetDepthCompareOpEXT
cmdSetDepthTestEnableEXT
cmdSetDepthWriteEnableEXT
cmdSetFrontFaceEXT
cmdSetPrimitiveTopologyEXT
cmdSetScissorWithCountEXT
cmdSetStencilOpEXT
cmdSetStencilTestEnableEXT
cmdSetViewportWithCountEXT
New Structures
New Enum Constants
EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION
Extending
DynamicState
:DYNAMIC_STATE_CULL_MODE_EXT
DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT
DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT
DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT
DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT
DYNAMIC_STATE_FRONT_FACE_EXT
DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT
DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT
DYNAMIC_STATE_STENCIL_OP_EXT
DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT
DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT
DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT
Extending
StructureType
:
Promotion to Vulkan 1.3
This extension has been partially promoted. All dynamic state enumerants and entry points in this extension are included in core Vulkan 1.3, with the EXT suffix omitted. The feature structure is not promoted. Extension interfaces that were promoted remain available as aliases of the core functionality.
Issues
1) Why are the values of pStrides
in
cmdBindVertexBuffers2
limited to be between 0 and the maximum extent of the binding, when this
restriction is not present for the same static state?
Implementing these edge cases adds overhead to some implementations that would require significant cost when calling this function, and the intention is that this state should be more or less free to change.
VK_EXT_vertex_input_dynamic_state
allows the stride to be changed freely when supported via
cmdSetVertexInputEXT
.
Version History
Revision 1, 2019-12-09 (Piers Daniell)
- Internal revisions
See Also
PhysicalDeviceExtendedDynamicStateFeaturesEXT
,
cmdBindVertexBuffers2EXT
, cmdSetCullModeEXT
,
cmdSetDepthBoundsTestEnableEXT
, cmdSetDepthCompareOpEXT
,
cmdSetDepthTestEnableEXT
, cmdSetDepthWriteEnableEXT
,
cmdSetFrontFaceEXT
, cmdSetPrimitiveTopologyEXT
,
cmdSetScissorWithCountEXT
, cmdSetStencilOpEXT
,
cmdSetStencilTestEnableEXT
, cmdSetViewportWithCountEXT
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 DYNAMIC_STATE_CULL_MODE_EXT :: DynamicState
- pattern DYNAMIC_STATE_FRONT_FACE_EXT :: DynamicState
- pattern DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT :: DynamicState
- pattern DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT :: DynamicState
- pattern DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT :: DynamicState
- pattern DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT :: DynamicState
- pattern DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT :: DynamicState
- pattern DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT :: DynamicState
- pattern DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT :: DynamicState
- pattern DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT :: DynamicState
- pattern DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT :: DynamicState
- pattern DYNAMIC_STATE_STENCIL_OP_EXT :: DynamicState
- cmdSetCullModeEXT :: MonadIO io => CommandBuffer -> CullModeFlags -> io ()
- cmdSetFrontFaceEXT :: MonadIO io => CommandBuffer -> FrontFace -> io ()
- cmdSetPrimitiveTopologyEXT :: MonadIO io => CommandBuffer -> PrimitiveTopology -> io ()
- cmdSetViewportWithCountEXT :: MonadIO io => CommandBuffer -> ("viewports" ::: Vector Viewport) -> io ()
- cmdSetScissorWithCountEXT :: MonadIO io => CommandBuffer -> ("scissors" ::: Vector Rect2D) -> io ()
- cmdBindVertexBuffers2EXT :: MonadIO io => CommandBuffer -> ("firstBinding" ::: Word32) -> ("buffers" ::: Vector Buffer) -> ("offsets" ::: Vector DeviceSize) -> ("sizes" ::: Vector DeviceSize) -> ("strides" ::: Vector DeviceSize) -> io ()
- cmdSetDepthTestEnableEXT :: MonadIO io => CommandBuffer -> ("depthTestEnable" ::: Bool) -> io ()
- cmdSetDepthWriteEnableEXT :: MonadIO io => CommandBuffer -> ("depthWriteEnable" ::: Bool) -> io ()
- cmdSetDepthCompareOpEXT :: MonadIO io => CommandBuffer -> ("depthCompareOp" ::: CompareOp) -> io ()
- cmdSetDepthBoundsTestEnableEXT :: MonadIO io => CommandBuffer -> ("depthBoundsTestEnable" ::: Bool) -> io ()
- cmdSetStencilTestEnableEXT :: MonadIO io => CommandBuffer -> ("stencilTestEnable" ::: Bool) -> io ()
- cmdSetStencilOpEXT :: MonadIO io => CommandBuffer -> ("faceMask" ::: StencilFaceFlags) -> ("failOp" ::: StencilOp) -> ("passOp" ::: StencilOp) -> ("depthFailOp" ::: StencilOp) -> CompareOp -> io ()
- data PhysicalDeviceExtendedDynamicStateFeaturesEXT = PhysicalDeviceExtendedDynamicStateFeaturesEXT {}
- type EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION = 1
- pattern EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION :: forall a. Integral a => a
- type EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME = "VK_EXT_extended_dynamic_state"
- pattern EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
Documentation
pattern DYNAMIC_STATE_CULL_MODE_EXT :: DynamicState Source #
pattern DYNAMIC_STATE_FRONT_FACE_EXT :: DynamicState Source #
pattern DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT :: DynamicState Source #
pattern DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT :: DynamicState Source #
pattern DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT :: DynamicState Source #
pattern DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT :: DynamicState Source #
pattern DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT :: DynamicState Source #
pattern DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT :: DynamicState Source #
pattern DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT :: DynamicState Source #
pattern DYNAMIC_STATE_STENCIL_OP_EXT :: DynamicState Source #
cmdSetCullModeEXT :: MonadIO io => CommandBuffer -> CullModeFlags -> io () Source #
cmdSetFrontFaceEXT :: MonadIO io => CommandBuffer -> FrontFace -> io () Source #
cmdSetPrimitiveTopologyEXT :: MonadIO io => CommandBuffer -> PrimitiveTopology -> io () Source #
cmdSetViewportWithCountEXT :: MonadIO io => CommandBuffer -> ("viewports" ::: Vector Viewport) -> io () Source #
cmdSetScissorWithCountEXT :: MonadIO io => CommandBuffer -> ("scissors" ::: Vector Rect2D) -> io () Source #
cmdBindVertexBuffers2EXT :: MonadIO io => CommandBuffer -> ("firstBinding" ::: Word32) -> ("buffers" ::: Vector Buffer) -> ("offsets" ::: Vector DeviceSize) -> ("sizes" ::: Vector DeviceSize) -> ("strides" ::: Vector DeviceSize) -> io () Source #
cmdSetDepthTestEnableEXT :: MonadIO io => CommandBuffer -> ("depthTestEnable" ::: Bool) -> io () Source #
cmdSetDepthWriteEnableEXT :: MonadIO io => CommandBuffer -> ("depthWriteEnable" ::: Bool) -> io () Source #
cmdSetDepthCompareOpEXT :: MonadIO io => CommandBuffer -> ("depthCompareOp" ::: CompareOp) -> io () Source #
cmdSetDepthBoundsTestEnableEXT :: MonadIO io => CommandBuffer -> ("depthBoundsTestEnable" ::: Bool) -> io () Source #
cmdSetStencilTestEnableEXT :: MonadIO io => CommandBuffer -> ("stencilTestEnable" ::: Bool) -> io () Source #
cmdSetStencilOpEXT :: MonadIO io => CommandBuffer -> ("faceMask" ::: StencilFaceFlags) -> ("failOp" ::: StencilOp) -> ("passOp" ::: StencilOp) -> ("depthFailOp" ::: StencilOp) -> CompareOp -> io () Source #
data PhysicalDeviceExtendedDynamicStateFeaturesEXT Source #
VkPhysicalDeviceExtendedDynamicStateFeaturesEXT - Structure describing what extended dynamic state can be used
Members
This structure describes the following feature:
Description
If the PhysicalDeviceExtendedDynamicStateFeaturesEXT
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. PhysicalDeviceExtendedDynamicStateFeaturesEXT
can also be
used in the pNext
chain of DeviceCreateInfo
to
selectively enable these features.
Valid Usage (Implicit)
See Also
Instances
pattern EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION :: forall a. Integral a => a Source #
type EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME = "VK_EXT_extended_dynamic_state" Source #
pattern EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #