## C Specification

The VkVertexInputBindingDescription2EXT structure is defined as:

// Provided by VK_EXT_vertex_input_dynamic_state
typedef struct VkVertexInputBindingDescription2EXT {
VkStructureType      sType;
void*                pNext;
uint32_t             binding;
uint32_t             stride;
VkVertexInputRate    inputRate;
uint32_t             divisor;
} VkVertexInputBindingDescription2EXT;

## Members

• sType is the type of this structure.

• pNext is NULL or a pointer to a structure extending this structure.

• binding is the binding number that this structure describes.

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

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

• 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 VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT::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.

## Description

Valid Usage
• VUID-VkVertexInputBindingDescription2EXT-binding-04796
binding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings

• VUID-VkVertexInputBindingDescription2EXT-stride-04797
stride must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindingStride

• VUID-VkVertexInputBindingDescription2EXT-divisor-04798
If the vertexAttributeInstanceRateZeroDivisor feature is not enabled, divisor must not be 0

• VUID-VkVertexInputBindingDescription2EXT-divisor-04799
If the vertexAttributeInstanceRateDivisor feature is not enabled, divisor must be 1

• VUID-VkVertexInputBindingDescription2EXT-divisor-06226
divisor must be a value between 0 and VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT::maxVertexAttribDivisor, inclusive

• VUID-VkVertexInputBindingDescription2EXT-divisor-06227
If divisor is not 1 then inputRate must be of type VK_VERTEX_INPUT_RATE_INSTANCE

Valid Usage (Implicit)
• VUID-VkVertexInputBindingDescription2EXT-sType-sType
sType must be VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT

• VUID-VkVertexInputBindingDescription2EXT-inputRate-parameter
inputRate must be a valid VkVertexInputRate value