# VkVertexInputAttributeDescription(3) Manual Page

## Name

VkVertexInputAttributeDescription - Structure specifying vertex input attribute description

## 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;

## Members

- `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.

## Description

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)

- `format` must be a valid VkFormat value

## See Also

VkFormat, VkPipelineVertexInputStateCreateInfo

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