VkVertexInputBindingDivisorDescription(3)

# VkVertexInputBindingDivisorDescription(3) Manual Page

## Name

VkVertexInputBindingDivisorDescription - Structure specifying a divisor used in instanced rendering

## C Specification

The individual divisor values per binding are specified using the `VkVertexInputBindingDivisorDescription` structure which is defined as:

    // Provided by VK_VERSION_1_4
    typedef struct VkVertexInputBindingDivisorDescription {
        uint32_t    binding;
        uint32_t    divisor;
    } VkVertexInputBindingDivisorDescription;

    // Provided by VK_KHR_vertex_attribute_divisor
    // Equivalent to VkVertexInputBindingDivisorDescription
    typedef VkVertexInputBindingDivisorDescription VkVertexInputBindingDivisorDescriptionKHR;

    // Provided by VK_EXT_vertex_attribute_divisor
    // Equivalent to VkVertexInputBindingDivisorDescription
    typedef VkVertexInputBindingDivisorDescription VkVertexInputBindingDivisorDescriptionEXT;

## Members

- `binding` is the binding number for which the divisor is specified.

- `divisor` is the number of successive instances that will use the same value of the vertex attribute when instanced rendering 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 VkPhysicalDeviceVertexAttributeDivisorProperties::`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

If this structure is not used to define a divisor value for an attribute, then the divisor has a logical default value of 1.

Valid Usage

- VUID-VkVertexInputBindingDivisorDescription-binding-01869
  `binding` must be less than VkPhysicalDeviceLimits::`maxVertexInputBindings`

- VUID-VkVertexInputBindingDivisorDescription-vertexAttributeInstanceRateZeroDivisor-02228
  If the `vertexAttributeInstanceRateZeroDivisor` feature is not enabled, `divisor` must not be `0`

- VUID-VkVertexInputBindingDivisorDescription-vertexAttributeInstanceRateDivisor-02229
  If the `vertexAttributeInstanceRateDivisor` feature is not enabled, `divisor` must be `1`

- VUID-VkVertexInputBindingDivisorDescription-divisor-01870
  `divisor` must be a value between `0` and VkPhysicalDeviceVertexAttributeDivisorProperties::`maxVertexAttribDivisor`, inclusive

- VUID-VkVertexInputBindingDivisorDescription-inputRate-01871
  VkVertexInputBindingDescription::`inputRate` must be of type VK_VERTEX_INPUT_RATE_INSTANCE for this `binding`

## See Also

VK_EXT_vertex_attribute_divisor, VK_KHR_vertex_attribute_divisor, VK_VERSION_1_4, VkPipelineVertexInputDivisorStateCreateInfo

## 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-2026 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0