---
title: MTLAttributeDescriptor
framework: metal
role: symbol
role_heading: Class
path: metal/mtlattributedescriptor
---

# MTLAttributeDescriptor

A descriptor of an argument’s format and where its data is in memory.

## Declaration

```swift
class MTLAttributeDescriptor
```

## Overview

Overview Attribute descriptors are part of an MTLVertexDescriptor or MTLStageInputOutputDescriptor instance to provide layout information about a function’s arguments. Each descriptor is for a single argument, containing information about the attached data, offset and stride, and data type.

## Topics

### Defining attribute location

- [bufferIndex](metal/mtlattributedescriptor/bufferindex.md)
- [offset](metal/mtlattributedescriptor/offset.md)
- [format](metal/mtlattributedescriptor/format.md)
- [MTLAttributeFormat](metal/mtlattributeformat.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

### Configuring compute pass inputs

- [stageInputDescriptor](metal/mtlcomputepipelinedescriptor/stageinputdescriptor.md)
- [MTLAttributeDescriptorArray](metal/mtlattributedescriptorarray.md)
- [MTLBufferLayoutDescriptor](metal/mtlbufferlayoutdescriptor.md)
- [MTLBufferLayoutDescriptorArray](metal/mtlbufferlayoutdescriptorarray.md)
