---
title: Command encoder factory methods
framework: metal
role: collectionGroup
role_heading: API Collection
path: metal/command-encoder-factory-methods
---

# Command encoder factory methods

A command encoder defines the actions of a single pass, such as GPU commands that draw, compute, or quickly copy resource data.

## Topics

### Creating render encoders

- [makeRenderCommandEncoder(descriptor:)](metal/mtlcommandbuffer/makerendercommandencoder(descriptor:).md)

### Creating parallel render encoders

- [makeParallelRenderCommandEncoder(descriptor:)](metal/mtlcommandbuffer/makeparallelrendercommandencoder(descriptor:).md)

### Creating acceleration structure encoders

- [makeAccelerationStructureCommandEncoder(descriptor:)](metal/mtlcommandbuffer/makeaccelerationstructurecommandencoder(descriptor:).md)
- [makeAccelerationStructureCommandEncoder()](metal/mtlcommandbuffer/makeaccelerationstructurecommandencoder().md)

### Creating compute encoders

- [makeComputeCommandEncoder(descriptor:)](metal/mtlcommandbuffer/makecomputecommandencoder(descriptor:).md)
- [makeComputeCommandEncoder()](metal/mtlcommandbuffer/makecomputecommandencoder().md)
- [makeComputeCommandEncoder(dispatchType:)](metal/mtlcommandbuffer/makecomputecommandencoder(dispatchtype:).md)
- [MTLDispatchType](metal/mtldispatchtype.md)

### Creating blit encoders

- [makeBlitCommandEncoder()](metal/mtlcommandbuffer/makeblitcommandencoder().md)
- [makeBlitCommandEncoder(descriptor:)](metal/mtlcommandbuffer/makeblitcommandencoder(descriptor:).md)

### Creating resource state encoders

- [resourceStateCommandEncoder(with:)](metal/mtlcommandbuffer/resourcestatecommandencoder(with:).md)
- [makeResourceStateCommandEncoder()](metal/mtlcommandbuffer/makeresourcestatecommandencoder().md)
