| Safe Haskell | None |
|---|---|
| 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
- Extension and Version Dependencies
- Requires Vulkan 1.0
- Requires
VK_KHR_get_physical_device_properties2
- 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 dynamic vertex input state
Description
This command sets the vertex input attribute and vertex input binding descriptions state for subsequent drawing commands.
Valid Usage
- The vertexInputDynamicState feature 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
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 | Supported Queue Types |
|---|---|---|
| Primary Secondary | Both | Graphics |
See Also
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
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 -
formatmust be allowed as a vertex buffer format, as specified by theFORMAT_FEATURE_VERTEX_BUFFER_BITflag inFormatProperties::bufferFeaturesreturned bygetPhysicalDeviceFormatProperties -
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
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 #