vulkan-3.26.1: Bindings to the Vulkan graphics API.
Safe HaskellSafe-Inferred
LanguageHaskell2010

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

Version History

  • 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

Documentation

cmdSetVertexInputEXT Source #

Arguments

:: forall io. MonadIO io 
=> CommandBuffer

commandBuffer is the command buffer into which the command will be recorded.

-> ("vertexBindingDescriptions" ::: Vector VertexInputBindingDescription2EXT)

pVertexBindingDescriptions is a pointer to an array of VertexInputBindingDescription2EXT structures.

-> ("vertexAttributeDescriptions" ::: Vector VertexInputAttributeDescription2EXT)

pVertexAttributeDescriptions is a pointer to an array of VertexInputAttributeDescription2EXT structures.

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

  • vertexBindingDescriptionCount must be less than or equal to PhysicalDeviceLimits::maxVertexInputBindings
  • vertexAttributeDescriptionCount must be less than or equal to PhysicalDeviceLimits::maxVertexInputAttributes
  • For every binding specified by each element of pVertexAttributeDescriptions, a VertexInputBindingDescription2EXT must exist in pVertexBindingDescriptions with the same value of binding
  • All elements of pVertexBindingDescriptions must describe distinct binding numbers
  • All elements of pVertexAttributeDescriptions must describe distinct attribute locations

Valid Usage (Implicit)

  • If vertexBindingDescriptionCount is not 0, pVertexBindingDescriptions must be a valid pointer to an array of vertexBindingDescriptionCount valid VertexInputBindingDescription2EXT structures
  • If vertexAttributeDescriptionCount is not 0, pVertexAttributeDescriptions must be a valid pointer to an array of vertexAttributeDescriptionCount valid VertexInputAttributeDescription2EXT structures
  • commandBuffer must be in the recording state
  • The CommandPool that commandBuffer 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 that commandBuffer was allocated from must be externally synchronized

Command Properties

'

Command Buffer LevelsRender Pass ScopeVideo Coding ScopeSupported Queue TypesCommand Type
Primary SecondaryBoth 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

VK_EXT_vertex_input_dynamic_state, Bool32, StructureType

Constructors

PhysicalDeviceVertexInputDynamicStateFeaturesEXT 

Fields

Instances

Instances details
Storable PhysicalDeviceVertexInputDynamicStateFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state

Show PhysicalDeviceVertexInputDynamicStateFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state

Eq PhysicalDeviceVertexInputDynamicStateFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state

FromCStruct PhysicalDeviceVertexInputDynamicStateFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state

ToCStruct PhysicalDeviceVertexInputDynamicStateFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state

Zero PhysicalDeviceVertexInputDynamicStateFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state

data VertexInputBindingDescription2EXT Source #

VkVertexInputBindingDescription2EXT - Structure specifying the extended vertex input binding description

Valid Usage

Valid Usage (Implicit)

See Also

VK_EXT_shader_object, VK_EXT_vertex_input_dynamic_state, StructureType, VertexInputRate, cmdSetVertexInputEXT

Constructors

VertexInputBindingDescription2EXT 

Fields

  • binding :: Word32

    binding is the binding number that this structure describes.

  • stride :: Word32

    stride is the byte stride between consecutive elements within the buffer.

  • inputRate :: VertexInputRate

    inputRate is a VertexInputRate value specifying whether vertex attribute addressing is a function of the vertex index or of the instance index.

  • divisor :: Word32

    divisor is the number of successive instances that will use the same value of the vertex attribute when instanced rendering is enabled. This member can be set to a value other than 1 if the vertexAttributeInstanceRateDivisor feature is enabled. For example, if the divisor is N, the same vertex attribute will be applied to N successive instances before moving on to the next vertex attribute. The maximum value of divisor is implementation-dependent and can be queried using PhysicalDeviceVertexAttributeDivisorPropertiesEXT::maxVertexAttribDivisor. A value of 0 can be used for the divisor if the vertexAttributeInstanceRateZeroDivisor feature is enabled. In this case, the same vertex attribute will be applied to all instances.

Instances

Instances details
Storable VertexInputBindingDescription2EXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state

Show VertexInputBindingDescription2EXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state

Eq VertexInputBindingDescription2EXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state

FromCStruct VertexInputBindingDescription2EXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state

ToCStruct VertexInputBindingDescription2EXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state

Zero VertexInputBindingDescription2EXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state

data VertexInputAttributeDescription2EXT Source #

VkVertexInputAttributeDescription2EXT - Structure specifying the extended vertex input attribute description

Valid Usage

Valid Usage (Implicit)

  • format must be a valid Format value

See Also

VK_EXT_shader_object, VK_EXT_vertex_input_dynamic_state, Format, StructureType, cmdSetVertexInputEXT

Constructors

VertexInputAttributeDescription2EXT 

Fields

  • location :: Word32

    location is the shader input location number for this attribute.

  • binding :: Word32

    binding is the binding number which this attribute takes its data from.

  • format :: Format

    format is the size and type of the vertex attribute data.

  • offset :: Word32

    offset is a byte offset of this attribute relative to the start of an element in the vertex input binding.

Instances

Instances details
Storable VertexInputAttributeDescription2EXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state

Show VertexInputAttributeDescription2EXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state

Eq VertexInputAttributeDescription2EXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state

FromCStruct VertexInputAttributeDescription2EXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state

ToCStruct VertexInputAttributeDescription2EXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state

Zero VertexInputAttributeDescription2EXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state

type EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME = "VK_EXT_vertex_input_dynamic_state" Source #