---
title: MTLVertexAttributeDescriptor
framework: metal
role: symbol
role_heading: Class
path: metal/mtlvertexattributedescriptor
---

# MTLVertexAttributeDescriptor

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

## Declaration

```swift
class MTLVertexAttributeDescriptor
```

## Overview

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](metal/mtlvertexattributedescriptor/format.md)
- [offset](metal/mtlvertexattributedescriptor/offset.md)
- [bufferIndex](metal/mtlvertexattributedescriptor/bufferindex.md)
- [MTLVertexFormat](metal/mtlvertexformat.md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSCopying](foundation/nscopying.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Render pass inputs

- [MTLVertexDescriptor](metal/mtlvertexdescriptor.md)
- [MTLVertexAttributeDescriptorArray](metal/mtlvertexattributedescriptorarray.md)
- [MTLVertexBufferLayoutDescriptor](metal/mtlvertexbufferlayoutdescriptor.md)
- [MTLVertexBufferLayoutDescriptorArray](metal/mtlvertexbufferlayoutdescriptorarray.md)
- [MTLBufferLayoutStrideDynamic](metal/mtlbufferlayoutstridedynamic.md)
