| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state
Description
Name
VK_EXT_vertex_input_dynamic_state - device extension
VK_EXT_vertex_input_dynamic_state
- Name String
VK_EXT_vertex_input_dynamic_state
- Extension Type
- Device extension
- Registered Extension Number
- 353
- Revision
- 2
- Ratification Status
- Not ratified
- Extension and Version Dependencies
- VK_KHR_get_physical_device_properties2 or Version 1.1
- Contact
Other Extension Metadata
- Last Modified Date
- 2020-08-21
- IP Status
- No known IP claims.
- Contributors
- Jeff Bolz, NVIDIA
- Spencer Fricke, Samsung
- Stu Smith, AMD
Description
One of the states that contributes to the combinatorial explosion of pipeline state objects that need to be created, is the vertex input binding and attribute descriptions. By allowing them to be dynamic applications may reduce the number of pipeline objects they need to create.
This extension adds dynamic state support for what is normally static
state in PipelineVertexInputStateCreateInfo.
New Commands
New Structures
New Enum Constants
EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSIONExtending
DynamicState:Extending
StructureType:
Version History
Revision 2, 2020-11-05 (Piers Daniell)
- Make
VertexInputBindingDescription2EXTextensible - Add new
VertexInputAttributeDescription2EXTstruct for thepVertexAttributeDescriptionsparameter tocmdSetVertexInputEXTso it is also extensible
- Make
Revision 1, 2020-08-21 (Piers Daniell)
- Internal revisions
See Also
PhysicalDeviceVertexInputDynamicStateFeaturesEXT,
VertexInputAttributeDescription2EXT,
VertexInputBindingDescription2EXT, cmdSetVertexInputEXT
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
- cmdSetVertexInputEXT :: forall io. MonadIO io => CommandBuffer -> ("vertexBindingDescriptions" ::: Vector VertexInputBindingDescription2EXT) -> ("vertexAttributeDescriptions" ::: Vector VertexInputAttributeDescription2EXT) -> io ()
- data PhysicalDeviceVertexInputDynamicStateFeaturesEXT = PhysicalDeviceVertexInputDynamicStateFeaturesEXT {}
- data VertexInputBindingDescription2EXT = VertexInputBindingDescription2EXT {}
- data VertexInputAttributeDescription2EXT = VertexInputAttributeDescription2EXT {}
- type EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION = 2
- pattern EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION :: forall a. Integral a => a
- type EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME = "VK_EXT_vertex_input_dynamic_state"
- pattern EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
Documentation
Arguments
| :: forall io. MonadIO io | |
| => CommandBuffer |
|
| -> ("vertexBindingDescriptions" ::: Vector VertexInputBindingDescription2EXT) |
|
| -> ("vertexAttributeDescriptions" ::: Vector VertexInputAttributeDescription2EXT) |
|
| -> io () |
vkCmdSetVertexInputEXT - Set the vertex input state dynamically for a command buffer
Description
This command sets the vertex input attribute and vertex input binding
descriptions state for subsequent drawing commands when drawing using
shader objects,
or when the graphics pipeline is created with
DYNAMIC_STATE_VERTEX_INPUT_EXT set in
PipelineDynamicStateCreateInfo::pDynamicStates.
Otherwise, this state is specified by the
GraphicsPipelineCreateInfo::pVertexInputState
values used to create the currently active pipeline.
If drawing using
shader objects,
or if the bound pipeline state object was also created with the
DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE
dynamic state enabled, then
cmdBindVertexBuffers2
can be used instead of cmdSetVertexInputEXT to dynamically set the
stride.
Valid Usage
- Either the vertexInputDynamicState feature or the shaderObject feature or both must be enabled
-
vertexBindingDescriptionCountmust be less than or equal toPhysicalDeviceLimits::maxVertexInputBindings -
vertexAttributeDescriptionCountmust be less than or equal toPhysicalDeviceLimits::maxVertexInputAttributes - For every
bindingspecified by each element ofpVertexAttributeDescriptions, aVertexInputBindingDescription2EXTmust exist inpVertexBindingDescriptionswith the same value ofbinding - All
elements of
pVertexBindingDescriptionsmust describe distinct binding numbers - All
elements of
pVertexAttributeDescriptionsmust describe distinct attribute locations
Valid Usage (Implicit)
-
commandBuffermust be a validCommandBufferhandle
-
If
vertexBindingDescriptionCountis not0,pVertexBindingDescriptionsmust be a valid pointer to an array ofvertexBindingDescriptionCountvalidVertexInputBindingDescription2EXTstructures -
If
vertexAttributeDescriptionCountis not0,pVertexAttributeDescriptionsmust be a valid pointer to an array ofvertexAttributeDescriptionCountvalidVertexInputAttributeDescription2EXTstructures -
commandBuffermust be in the recording state - The
CommandPoolthatcommandBufferwas allocated from must support graphics operations - This command must only be called outside of a video coding scope
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
- Host access to the
CommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
'
| Command Buffer Levels | Render Pass Scope | Video Coding Scope | Supported Queue Types | Command Type |
|---|---|---|---|---|
| Primary Secondary | Both | Outside | Graphics | State |
See Also
VK_EXT_shader_object,
VK_EXT_vertex_input_dynamic_state,
CommandBuffer,
VertexInputAttributeDescription2EXT,
VertexInputBindingDescription2EXT
data PhysicalDeviceVertexInputDynamicStateFeaturesEXT Source #
VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT - Structure describing whether the dynamic vertex input state can be used
Members
This structure describes the following feature:
Description
If the PhysicalDeviceVertexInputDynamicStateFeaturesEXT 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. PhysicalDeviceVertexInputDynamicStateFeaturesEXT can also
be used in the pNext chain of DeviceCreateInfo
to selectively enable these features.
Valid Usage (Implicit)
See Also
Constructors
| PhysicalDeviceVertexInputDynamicStateFeaturesEXT | |
Fields | |
Instances
data VertexInputBindingDescription2EXT Source #
VkVertexInputBindingDescription2EXT - Structure specifying the extended vertex input binding description
Valid Usage
-
bindingmust be less thanPhysicalDeviceLimits::maxVertexInputBindings
-
stridemust be less than or equal toPhysicalDeviceLimits::maxVertexInputBindingStride - If the
vertexAttributeInstanceRateZeroDivisor
feature is not enabled,
divisormust not be0 - If the
vertexAttributeInstanceRateDivisor
feature is not enabled,
divisormust be1 -
divisormust be a value between0andPhysicalDeviceVertexAttributeDivisorPropertiesEXT::maxVertexAttribDivisor, inclusive - If
divisoris not1theninputRatemust be of typeVERTEX_INPUT_RATE_INSTANCE
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT
-
inputRatemust be a validVertexInputRatevalue
See Also
VK_EXT_shader_object,
VK_EXT_vertex_input_dynamic_state,
StructureType,
VertexInputRate,
cmdSetVertexInputEXT
Constructors
| VertexInputBindingDescription2EXT | |
Fields
| |
Instances
data VertexInputAttributeDescription2EXT Source #
VkVertexInputAttributeDescription2EXT - Structure specifying the extended vertex input attribute description
Valid Usage
-
locationmust be less thanPhysicalDeviceLimits::maxVertexInputAttributes
-
bindingmust be less thanPhysicalDeviceLimits::maxVertexInputBindings -
offsetmust be less than or equal toPhysicalDeviceLimits::maxVertexInputAttributeOffset - The
format features
of
formatmust containFORMAT_FEATURE_VERTEX_BUFFER_BIT -
If the
VK_KHR_portability_subsetextension is enabled, andPhysicalDevicePortabilitySubsetFeaturesKHR::vertexAttributeAccessBeyondStrideisFALSE, the sum ofoffsetplus the size of the vertex attribute data described byformatmust not be greater thanstridein theVertexInputBindingDescription2EXTreferenced inbinding
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT
-
formatmust be a validFormatvalue
See Also
VK_EXT_shader_object,
VK_EXT_vertex_input_dynamic_state,
Format,
StructureType,
cmdSetVertexInputEXT
Constructors
| VertexInputAttributeDescription2EXT | |
Fields
| |
Instances
pattern EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION :: forall a. Integral a => a Source #
type EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME = "VK_EXT_vertex_input_dynamic_state" Source #
pattern EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #