Class EXTVertexInputDynamicState
- java.lang.Object
-
- org.lwjgl.vulkan.EXTVertexInputDynamicState
-
public class EXTVertexInputDynamicState extends java.lang.ObjectOne 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
VkPipelineVertexInputStateCreateInfo.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
- 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
Fields Modifier and Type Field Description static intVK_DYNAMIC_STATE_VERTEX_INPUT_EXTExtendsVkDynamicState.static java.lang.StringVK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAMEThe extension name.static intVK_EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSIONThe extension specification version.static intVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT
VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT
VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXTExtendsVkStructureType.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static voidnvkCmdSetVertexInputEXT(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, int vertexBindingDescriptionCount, long pVertexBindingDescriptions, int vertexAttributeDescriptionCount, long pVertexAttributeDescriptions)Unsafe version of:CmdSetVertexInputEXTstatic voidvkCmdSetVertexInputEXT(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, VkVertexInputBindingDescription2EXT.Buffer pVertexBindingDescriptions, VkVertexInputAttributeDescription2EXT.Buffer pVertexAttributeDescriptions)Set the vertex input state dynamically for a command buffer.
-
-
-
Field Detail
-
VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION
The extension specification version.
-
VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME
The extension name.
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT, VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT, VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT
-
VK_DYNAMIC_STATE_VERTEX_INPUT_EXT
ExtendsVkDynamicState.
-
-
Method Detail
-
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 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 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.Valid Usage
- The vertexInputDynamicState feature 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
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 Supported Queue Types Primary Secondary Both Graphics 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.
-
-