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

New Structures

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