<!--
{
  "availability" : [
    "iOS: 8.0.0 -",
    "iPadOS: 8.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.11.0 -",
    "tvOS: -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Metal",
  "identifier" : "/documentation/Metal/MTLVertexAttributeDescriptor",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Metal"
    ],
    "preciseIdentifier" : "c:objc(cs)MTLVertexAttributeDescriptor"
  },
  "title" : "MTLVertexAttributeDescriptor"
}
-->

# MTLVertexAttributeDescriptor

An object that determines how to store attribute data in memory and map it to the arguments of a vertex function.

```
class MTLVertexAttributeDescriptor
```

## Overview

A vertex attribute descriptor provides organization information so a vertex shader function can locate and load data into its arguments. The descriptor maps memory locations to attribute locations. It supports access to multiple attributes (such as vertex coordinates, surface normals, and texture coordinates) that are interleaved within the same buffer.

## Topics

### Organizing the vertex attribute

[`format`](/documentation/Metal/MTLVertexAttributeDescriptor/format)

The format of the vertex attribute.

[`offset`](/documentation/Metal/MTLVertexAttributeDescriptor/offset)

The location of an attribute in vertex data, determined by the byte offset from the start of the vertex data.

[`bufferIndex`](/documentation/Metal/MTLVertexAttributeDescriptor/bufferIndex)

The index in the argument table for the associated vertex buffer.

[`MTLVertexFormat`](/documentation/Metal/MTLVertexFormat)

The vertex data format options for render pipelines.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)