Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
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_VERSION
Extending
DynamicState
:Extending
StructureType
:
Version History
Revision 2, 2020-11-05 (Piers Daniell)
- Make
VertexInputBindingDescription2EXT
extensible - Add new
VertexInputAttributeDescription2EXT
struct for thepVertexAttributeDescriptions
parameter tocmdSetVertexInputEXT
so 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
:: 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
-
vertexBindingDescriptionCount
must be less than or equal toPhysicalDeviceLimits
::maxVertexInputBindings
-
vertexAttributeDescriptionCount
must be less than or equal toPhysicalDeviceLimits
::maxVertexInputAttributes
- For every
binding
specified by each element ofpVertexAttributeDescriptions
, aVertexInputBindingDescription2EXT
must exist inpVertexBindingDescriptions
with the same value ofbinding
- All
elements of
pVertexBindingDescriptions
must describe distinct binding numbers - All
elements of
pVertexAttributeDescriptions
must describe distinct attribute locations
Valid Usage (Implicit)
-
commandBuffer
must be a validCommandBuffer
handle
-
If
vertexBindingDescriptionCount
is not0
,pVertexBindingDescriptions
must be a valid pointer to an array ofvertexBindingDescriptionCount
validVertexInputBindingDescription2EXT
structures -
If
vertexAttributeDescriptionCount
is not0
,pVertexAttributeDescriptions
must be a valid pointer to an array ofvertexAttributeDescriptionCount
validVertexInputAttributeDescription2EXT
structures -
commandBuffer
must be in the recording state - The
CommandPool
thatcommandBuffer
was allocated from must support graphics operations - This command must only be called outside of a video coding scope
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Host access to the
CommandPool
thatcommandBuffer
was 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
PhysicalDeviceVertexInputDynamicStateFeaturesEXT | |
Instances
data VertexInputBindingDescription2EXT Source #
VkVertexInputBindingDescription2EXT - Structure specifying the extended vertex input binding description
Valid Usage
-
binding
must be less thanPhysicalDeviceLimits
::maxVertexInputBindings
-
stride
must be less than or equal toPhysicalDeviceLimits
::maxVertexInputBindingStride
- If the
vertexAttributeInstanceRateZeroDivisor
feature is not enabled,
divisor
must not be0
- If the
vertexAttributeInstanceRateDivisor
feature is not enabled,
divisor
must be1
-
divisor
must be a value between0
andPhysicalDeviceVertexAttributeDivisorPropertiesEXT
::maxVertexAttribDivisor
, inclusive - If
divisor
is not1
theninputRate
must be of typeVERTEX_INPUT_RATE_INSTANCE
Valid Usage (Implicit)
-
sType
must beSTRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT
-
inputRate
must be a validVertexInputRate
value
See Also
VK_EXT_shader_object,
VK_EXT_vertex_input_dynamic_state,
StructureType
,
VertexInputRate
,
cmdSetVertexInputEXT
VertexInputBindingDescription2EXT | |
|
Instances
data VertexInputAttributeDescription2EXT Source #
VkVertexInputAttributeDescription2EXT - Structure specifying the extended vertex input attribute description
Valid Usage
-
location
must be less thanPhysicalDeviceLimits
::maxVertexInputAttributes
-
binding
must be less thanPhysicalDeviceLimits
::maxVertexInputBindings
-
offset
must be less than or equal toPhysicalDeviceLimits
::maxVertexInputAttributeOffset
- The
format features
of
format
must containFORMAT_FEATURE_VERTEX_BUFFER_BIT
-
If the
VK_KHR_portability_subset
extension is enabled, andPhysicalDevicePortabilitySubsetFeaturesKHR
::vertexAttributeAccessBeyondStride
isFALSE
, the sum ofoffset
plus the size of the vertex attribute data described byformat
must not be greater thanstride
in theVertexInputBindingDescription2EXT
referenced inbinding
Valid Usage (Implicit)
-
sType
must beSTRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT
-
format
must be a validFormat
value
See Also
VK_EXT_shader_object,
VK_EXT_vertex_input_dynamic_state,
Format
,
StructureType
,
cmdSetVertexInputEXT
VertexInputAttributeDescription2EXT | |
|
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 #