C Specification

Each vertex input attribute is specified by the VkVertexInputAttributeDescription structure, defined as:

typedef struct VkVertexInputAttributeDescription {
    uint32_t    location;
    uint32_t    binding;
    VkFormat    format;
    uint32_t    offset;
} VkVertexInputAttributeDescription;


  • location is the shader binding location number for this attribute.

  • binding is the binding number which this attribute takes its data from.

  • format is the size and type of the vertex attribute data.

  • offset is a byte offset of this attribute relative to the start of an element in the vertex input binding.


Valid Usage
  • location must be less than VkPhysicalDeviceLimits::maxVertexInputAttributes

  • binding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings

  • offset must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputAttributeOffset

  • format must be allowed as a vertex buffer format, as specified by the VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT flag in VkFormatProperties::bufferFeatures returned by vkGetPhysicalDeviceFormatProperties

Valid Usage (Implicit)

See Also

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 (c) 2014-2020 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.