---
title: Render pass configuration
framework: metal
role: collectionGroup
role_heading: API Collection
path: metal/render-pass-configuration
---

# Render pass configuration

Set a render pass’s pipeline state, attachment actions, viewports, and so on, that affect subsequent drawing commands.

## Overview

Overview These methods encode commands that configure the render pass for all subsequent drawing commands. The most important configuration is the pipeline state (see MTLRenderPipelineState), which you configure by calling the setRenderPipelineState(_:) method.

## Topics

### Configuring pipeline state

- [setRenderPipelineState(_:)](metal/mtlrendercommandencoder/setrenderpipelinestate(_:).md)

### Configuring the actions for attachments

- [setColorStoreAction(_:index:)](metal/mtlrendercommandencoder/setcolorstoreaction(_:index:).md)
- [setColorStoreActionOptions(_:index:)](metal/mtlrendercommandencoder/setcolorstoreactionoptions(_:index:).md)
- [setDepthStoreAction(_:)](metal/mtlrendercommandencoder/setdepthstoreaction(_:).md)
- [setDepthStoreActionOptions(_:)](metal/mtlrendercommandencoder/setdepthstoreactionoptions(_:).md)
- [setStencilStoreAction(_:)](metal/mtlrendercommandencoder/setstencilstoreaction(_:).md)
- [setStencilStoreActionOptions(_:)](metal/mtlrendercommandencoder/setstencilstoreactionoptions(_:).md)

### Configuring blend behavior

- [setBlendColor(red:green:blue:alpha:)](metal/mtlrendercommandencoder/setblendcolor(red:green:blue:alpha:).md)
- [setColorAttachmentMap(_:)](metal/mtlrendercommandencoder/setcolorattachmentmap(_:).md)

### Configuring rendering behavior

- [setTriangleFillMode(_:)](metal/mtlrendercommandencoder/settrianglefillmode(_:).md)
- [setFrontFacing(_:)](metal/mtlrendercommandencoder/setfrontfacing(_:).md)
- [setCullMode(_:)](metal/mtlrendercommandencoder/setcullmode(_:).md)

### Configuring depth and stencil behavior

- [setDepthStencilState(_:)](metal/mtlrendercommandencoder/setdepthstencilstate(_:).md)
- [setDepthBias(_:slopeScale:clamp:)](metal/mtlrendercommandencoder/setdepthbias(_:slopescale:clamp:).md)
- [setDepthClipMode(_:)](metal/mtlrendercommandencoder/setdepthclipmode(_:).md)
- [setDepthTestBounds(_:)](metal/mtlrendercommandencoder/setdepthtestbounds(_:).md)
- [setStencilReferenceValue(_:)](metal/mtlrendercommandencoder/setstencilreferencevalue(_:).md)
- [setStencilReferenceValues(front:back:)](metal/mtlrendercommandencoder/setstencilreferencevalues(front:back:).md)

### Configuring viewport and scissor behavior

- [setViewport(_:)](metal/mtlrendercommandencoder/setviewport(_:).md)
- [setViewports(_:)](metal/mtlrendercommandencoder/setviewports(_:).md)
- [setScissorRect(_:)](metal/mtlrendercommandencoder/setscissorrect(_:).md)
- [setScissorRects(_:)](metal/mtlrendercommandencoder/setscissorrects(_:).md)

### Configuring visibility testing

- [setVisibilityResultMode(_:offset:)](metal/mtlrendercommandencoder/setvisibilityresultmode(_:offset:).md)

### Configuring vertex amplification

- [setVertexAmplificationCount(_:viewMappings:)](metal/mtlrendercommandencoder/setvertexamplificationcount(_:viewmappings:).md)

### Configuring tessellation factors

- [setTessellationFactorScale(_:)](metal/mtlrendercommandencoder/settessellationfactorscale(_:).md)
- [setTessellationFactorBuffer(_:offset:instanceStride:)](metal/mtlrendercommandencoder/settessellationfactorbuffer(_:offset:instancestride:).md)

### Configuring persistent threadgroup memory

- [setObjectThreadgroupMemoryLength(_:index:)](metal/mtlrendercommandencoder/setobjectthreadgroupmemorylength(_:index:).md)
- [setThreadgroupMemoryLength(_:offset:index:)](metal/mtlrendercommandencoder/setthreadgroupmemorylength(_:offset:index:).md)
