VK_EXT_extended_dynamic_state(3)

# VK_EXT_extended_dynamic_state(3) Manual Page

## Name

VK_EXT_extended_dynamic_state - device extension

## Registered Extension Number

268

## 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

- Piers Daniell [GitHub]pdaniell-nv

## 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:

  - VkPhysicalDeviceExtendedDynamicStateFeaturesEXT

## 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

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

## 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.

## Copyright

Copyright 2014-2026 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0