Class EXTVertexInputDynamicState
This extension adds dynamic state support for what is normally static state in VkPipelineVertexInputStateCreateInfo.
- Name String
VK_EXT_vertex_input_dynamic_state- Extension Type
- Device extension
- Registered Extension Number
- 353
- Revision
- 2
- Extension and Version Dependencies
VK_KHR_get_physical_device_properties2or Version 1.1- Contact
- Piers Daniell pdaniell-nv
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
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intExtendsVkDynamicState.static final StringThe extension name.static final intThe extension specification version.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType. -
Method Summary
Modifier and TypeMethodDescriptionstatic voidnvkCmdSetVertexInputEXT(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, int vertexBindingDescriptionCount, long pVertexBindingDescriptions, int vertexAttributeDescriptionCount, long pVertexAttributeDescriptions) Unsafe version of:CmdSetVertexInputEXTstatic voidvkCmdSetVertexInputEXT(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, @Nullable VkVertexInputBindingDescription2EXT.Buffer pVertexBindingDescriptions, @Nullable VkVertexInputAttributeDescription2EXT.Buffer pVertexAttributeDescriptions) Set the vertex input state dynamically for a command buffer.
-
Field Details
-
VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION
public static final int VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSIONThe extension specification version.- See Also:
-
VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME
The extension name.- See Also:
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXTExtendsVkStructureType.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT
public static final int VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXTExtendsVkStructureType.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT
public static final int VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXTExtendsVkStructureType.Enum values:
- See Also:
-
VK_DYNAMIC_STATE_VERTEX_INPUT_EXT
public static final int VK_DYNAMIC_STATE_VERTEX_INPUT_EXTExtendsVkDynamicState.- See Also:
-
-
Method Details
-
nvkCmdSetVertexInputEXT
public static void nvkCmdSetVertexInputEXT(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, int vertexBindingDescriptionCount, long pVertexBindingDescriptions, int vertexAttributeDescriptionCount, long pVertexAttributeDescriptions) Unsafe version of:CmdSetVertexInputEXT- Parameters:
vertexBindingDescriptionCount- the number of vertex binding descriptions provided inpVertexBindingDescriptions.vertexAttributeDescriptionCount- the number of vertex attribute descriptions provided inpVertexAttributeDescriptions.
-
vkCmdSetVertexInputEXT
public static void vkCmdSetVertexInputEXT(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, @Nullable VkVertexInputBindingDescription2EXT.Buffer pVertexBindingDescriptions, @Nullable VkVertexInputAttributeDescription2EXT.Buffer pVertexAttributeDescriptions) Set the vertex input state dynamically for a command buffer.C Specification
To dynamically set the vertex input attribute and vertex input binding descriptions, call:
void vkCmdSetVertexInputEXT( VkCommandBuffer commandBuffer, uint32_t vertexBindingDescriptionCount, const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, uint32_t vertexAttributeDescriptionCount, const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions);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_EXTset inVkPipelineDynamicStateCreateInfo::pDynamicStates. Otherwise, this state is specified by theVkGraphicsPipelineCreateInfo::pVertexInputStatevalues 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_STRIDEdynamic state enabled, thenCmdBindVertexBuffers2can be used instead ofvkCmdSetVertexInputEXTto dynamically set the stride.The vertex attribute description for any location in the range
[0,not specified in theVkPhysicalDeviceLimits::maxVertexInputAttributes)pVertexAttributeDescriptionsarray becomes undefined.Valid Usage
- Either the
vertexInputDynamicStatefeature or theshaderObjectfeature or both must be enabled vertexBindingDescriptionCountmust be less than or equal toVkPhysicalDeviceLimits::maxVertexInputBindingsvertexAttributeDescriptionCountmust be less than or equal toVkPhysicalDeviceLimits::maxVertexInputAttributes- For every
bindingspecified by each element ofpVertexAttributeDescriptions, aVkVertexInputBindingDescription2EXTmust 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 validVkCommandBufferhandle- If
vertexBindingDescriptionCountis not 0,pVertexBindingDescriptionsmust be a valid pointer to an array ofvertexBindingDescriptionCountvalidVkVertexInputBindingDescription2EXTstructures - If
vertexAttributeDescriptionCountis not 0,pVertexAttributeDescriptionsmust be a valid pointer to an array ofvertexAttributeDescriptionCountvalidVkVertexInputAttributeDescription2EXTstructures commandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas 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
VkCommandPoolthatcommandBufferwas 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
VkVertexInputAttributeDescription2EXT,VkVertexInputBindingDescription2EXT- Parameters:
commandBuffer- the command buffer into which the command will be recorded.pVertexBindingDescriptions- a pointer to an array ofVkVertexInputBindingDescription2EXTstructures.pVertexAttributeDescriptions- a pointer to an array ofVkVertexInputAttributeDescription2EXTstructures.
- Either the
-