// Copyright 2019-2024 The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/{refprefix}VK_EXT_extended_dynamic_state.adoc[]

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

include::{generated}/interfaces/VK_EXT_extended_dynamic_state.adoc[]

=== 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 pname:pStrides in flink: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.

ifdef::VK_EXT_vertex_input_dynamic_state[]
apiext:VK_EXT_vertex_input_dynamic_state allows the stride to be changed
freely when supported via flink:vkCmdSetVertexInputEXT.
endif::VK_EXT_vertex_input_dynamic_state[]


=== Version History

  * Revision 1, 2019-12-09 (Piers Daniell)
  ** Internal revisions
