---
title: Vertex shader resource preparation commands
framework: metal
role: collectionGroup
role_heading: API Collection
path: metal/vertex-shader-resource-preparation-commands
---

# Vertex shader resource preparation commands

Assign resources to vertex shaders, including buffers, textures, acceleration structures, sampler states, and function tables.

## Overview

Overview Vertex shaders share argument tables for each resource type, such as buffers, textures, and sampler states. Each shader type has its own argument tables, separate from vertex shaders and other shader types.

## Topics

### Assigning buffers

- [setVertexBuffer(_:offset:index:)](metal/mtlrendercommandencoder/setvertexbuffer(_:offset:index:).md)
- [setVertexBuffer(_:offset:attributeStride:index:)](metal/mtlrendercommandencoder/setvertexbuffer(_:offset:attributestride:index:).md)
- [setVertexBuffers(_:offsets:range:)](metal/mtlrendercommandencoder/setvertexbuffers(_:offsets:range:).md)
- [setVertexBuffers(_:offsets:attributeStrides:range:)](metal/mtlrendercommandencoder/setvertexbuffers(_:offsets:attributestrides:range:).md)
- [setVertexBytes(_:length:index:)](metal/mtlrendercommandencoder/setvertexbytes(_:length:index:).md)
- [setVertexBytes(_:length:attributeStride:index:)](metal/mtlrendercommandencoder/setvertexbytes(_:length:attributestride:index:).md)
- [setVertexBufferOffset(_:index:)](metal/mtlrendercommandencoder/setvertexbufferoffset(_:index:).md)
- [setVertexBufferOffset(offset:attributeStride:index:)](metal/mtlrendercommandencoder/setvertexbufferoffset(offset:attributestride:index:).md)

### Assigning textures

- [setVertexTexture(_:index:)](metal/mtlrendercommandencoder/setvertextexture(_:index:).md)
- [setVertexTextures(_:range:)](metal/mtlrendercommandencoder/setvertextextures(_:range:).md)

### Assigning sampler states

- [setVertexSamplerState(_:index:)](metal/mtlrendercommandencoder/setvertexsamplerstate(_:index:).md)
- [setVertexSamplerState(_:lodMinClamp:lodMaxClamp:index:)](metal/mtlrendercommandencoder/setvertexsamplerstate(_:lodminclamp:lodmaxclamp:index:).md)
- [setVertexSamplerStates(_:range:)](metal/mtlrendercommandencoder/setvertexsamplerstates(_:range:).md)
- [setVertexSamplerStates(_:lodMinClamps:lodMaxClamps:range:)](metal/mtlrendercommandencoder/setvertexsamplerstates(_:lodminclamps:lodmaxclamps:range:).md)

### Assigning acceleration structures

- [setVertexAccelerationStructure(_:bufferIndex:)](metal/mtlrendercommandencoder/setvertexaccelerationstructure(_:bufferindex:).md)

### Assigning visible function tables

- [setVertexVisibleFunctionTable(_:bufferIndex:)](metal/mtlrendercommandencoder/setvertexvisiblefunctiontable(_:bufferindex:).md)
- [setVertexVisibleFunctionTables(_:bufferRange:)](metal/mtlrendercommandencoder/setvertexvisiblefunctiontables(_:bufferrange:).md)

### Assigning intersection function tables

- [setVertexIntersectionFunctionTable(_:bufferIndex:)](metal/mtlrendercommandencoder/setvertexintersectionfunctiontable(_:bufferindex:).md)
- [setVertexIntersectionFunctionTables(_:bufferRange:)](metal/mtlrendercommandencoder/setvertexintersectionfunctiontables(_:bufferrange:).md)

## See Also

### Resource preparation commands

- [Mesh and object shader resource preparation commands](metal/mesh-and-object-shader-resource-preparation-commands.md)
- [Fragment shader resource preparation commands](metal/fragment-shader-resource-preparation-commands.md)
- [Tile shaders resource preparation commands](metal/tile-shaders-resource-preparation-commands.md)
- [Argument buffer resource preparation commands](metal/argument-buffer-resource-preparation-commands.md)
