# VkVertexInputBindingDescription2EXT(3) Manual Page

## Name

VkVertexInputBindingDescription2EXT - Structure specifying the extended vertex input binding description

Loading… please wait.

## C Specification

The `VkVertexInputBindingDescription2EXT` structure is defined as:

    // Provided by VK_EXT_shader_object, 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 a VkStructureType value identifying 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 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

## See Also

VK_EXT_shader_object, VK_EXT_vertex_input_dynamic_state, VkStructureType, VkVertexInputRate, vkCmdSetVertexInputEXT

## Document Notes

For more information, see the Vulkan Specification

This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.

## Copyright

Copyright 2014-2024 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0