---
title: MTLVertexDescriptor
framework: metal
role: symbol
role_heading: Class
path: metal/mtlvertexdescriptor
---

# MTLVertexDescriptor

An instance that describes how to organize and map data to a vertex function.

## Declaration

```swift
class MTLVertexDescriptor
```

## Overview

Overview An MTLVertexDescriptor instance is used to configure how vertex data stored in memory is mapped to attributes in a vertex shader. A pipeline state is the state of the graphics rendering pipeline, including shaders, blending, multisampling, and visibility testing. For every pipeline state, there can be only one MTLVertexDescriptor instance. When you configure an MTLRenderPipelineDescriptor instance to create this pipeline state, you use an MTLVertexDescriptor instance to establish the vertex layout for the function associated with the pipeline. Create and configure an MTLVertexDescriptor instance, then use this instance to set the vertexDescriptor property of the MTLRenderPipelineDescriptor instance.

## Topics

### Setting default values

- [reset()](metal/mtlvertexdescriptor/reset().md)

### Accessing the vertex buffer layouts and vertex attributes

- [attributes](metal/mtlvertexdescriptor/attributes.md)
- [layouts](metal/mtlvertexdescriptor/layouts.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

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