VK_EXT_extended_dynamic_state
Other Extension Metadata
Last Modified Date
2019-12-09
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
- vkCmdBindVertexBuffers2EXT
- vkCmdSetCullModeEXT
- vkCmdSetDepthBoundsTestEnableEXT
- vkCmdSetDepthCompareOpEXT
- vkCmdSetDepthTestEnableEXT
- vkCmdSetDepthWriteEnableEXT
- vkCmdSetFrontFaceEXT
- vkCmdSetPrimitiveTopologyEXT
- vkCmdSetScissorWithCountEXT
- vkCmdSetStencilOpEXT
- vkCmdSetStencilTestEnableEXT
- vkCmdSetViewportWithCountEXT
New Structures
- Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo:
New Enum Constants
VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME
VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION
- Extending VkDynamicState:
VK_DYNAMIC_STATE_CULL_MODE_EXT
VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT
VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT
VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT
VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT
VK_DYNAMIC_STATE_FRONT_FACE_EXT
VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT
VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT
VK_DYNAMIC_STATE_STENCIL_OP_EXT
VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT
VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT
VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT
- Extending VkStructureType:
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT
Promotion to Vulkan 1.3
This extension has been partially promoted. All dynamic state enumerants and commands 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 vkCmdBindVertexBuffers2
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 vkCmdSetVertexInputEXT.
Version History
- Revision 1, 2019-12-09 (Piers Daniell)
- Internal revisions