---
title: MTLRenderPassDescriptor
framework: metal
role: symbol
role_heading: Class
path: metal/mtlrenderpassdescriptor
---

# MTLRenderPassDescriptor

A group of render targets that hold the results of a render pass.

## Declaration

```swift
class MTLRenderPassDescriptor
```

## Mentioned in

Sampling GPU data into counter sample buffers Positioning samples programmatically Rendering to multiple texture slices in a draw command

## Overview

Overview An MTLRenderPassDescriptor instance contains a collection of attachments used as the rendering destination for pixels generated by a rendering pass. The MTLRenderPassDescriptor instance also sets the destination buffer for visibility information generated by a rendering pass. important: When configuring an MTLTextureDescriptor instance for use with an attachment, set its usage value to renderTarget if you already know that you intend to use the resulting MTLTexture instance in an attachment. This may significantly improve your app’s performance with certain hardware.

## Topics

### Specifying the attachments for a rendering pass

- [colorAttachments](metal/mtlrenderpassdescriptor/colorattachments.md)
- [depthAttachment](metal/mtlrenderpassdescriptor/depthattachment.md)
- [stencilAttachment](metal/mtlrenderpassdescriptor/stencilattachment.md)

### Specifying the visibility result buffer

- [visibilityResultBuffer](metal/mtlrenderpassdescriptor/visibilityresultbuffer.md)

### Layered rendering

- [renderTargetArrayLength](metal/mtlrenderpassdescriptor/rendertargetarraylength.md)
- [renderTargetWidth](metal/mtlrenderpassdescriptor/rendertargetwidth.md)
- [renderTargetHeight](metal/mtlrenderpassdescriptor/rendertargetheight.md)

### Using programmable sample positions

- [MTLSamplePositionMake(_:_:)](metal/mtlsamplepositionmake(_:_:).md)
- [setSamplePositions(_:)](metal/mtlrenderpassdescriptor/setsamplepositions(_:).md)
- [getSamplePositions()](metal/mtlrenderpassdescriptor/getsamplepositions().md)

### Specifying tile shading parameters

- [imageblockSampleLength](metal/mtlrenderpassdescriptor/imageblocksamplelength.md)
- [threadgroupMemoryLength](metal/mtlrenderpassdescriptor/threadgroupmemorylength.md)
- [tileWidth](metal/mtlrenderpassdescriptor/tilewidth.md)
- [tileHeight](metal/mtlrenderpassdescriptor/tileheight.md)

### Specifying sample counts

- [defaultRasterSampleCount](metal/mtlrenderpassdescriptor/defaultrastersamplecount.md)

### Specifying a rasterization rate map

- [rasterizationRateMap](metal/mtlrenderpassdescriptor/rasterizationratemap.md)

### Specifying sample buffers for GPU counters

- [sampleBufferAttachments](metal/mtlrenderpassdescriptor/samplebufferattachments.md)

### Instance Properties

- [supportColorAttachmentMapping](metal/mtlrenderpassdescriptor/supportcolorattachmentmapping.md)
- [visibilityResultType](metal/mtlrenderpassdescriptor/visibilityresulttype.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 a render command encoder

- [MTL4RenderPassDescriptor](metal/mtl4renderpassdescriptor.md)
- [MTLRenderPassAttachmentDescriptor](metal/mtlrenderpassattachmentdescriptor.md)
- [MTLRenderPassColorAttachmentDescriptorArray](metal/mtlrenderpasscolorattachmentdescriptorarray.md)
- [MTLRenderPassColorAttachmentDescriptor](metal/mtlrenderpasscolorattachmentdescriptor.md)
- [MTLClearColor](metal/mtlclearcolor.md)
- [MTLRenderPassDepthAttachmentDescriptor](metal/mtlrenderpassdepthattachmentdescriptor.md)
- [MTLMultisampleDepthResolveFilter](metal/mtlmultisampledepthresolvefilter.md)
- [MTL4RenderPipelineColorAttachmentDescriptorArray](metal/mtl4renderpipelinecolorattachmentdescriptorarray.md)
- [MTLTileRenderPipelineColorAttachmentDescriptorArray](metal/mtltilerenderpipelinecolorattachmentdescriptorarray.md)
- [MTLRenderPassStencilAttachmentDescriptor](metal/mtlrenderpassstencilattachmentdescriptor.md)
- [MTLMultisampleStencilResolveFilter](metal/mtlmultisamplestencilresolvefilter.md)
- [MTLRenderPassSampleBufferAttachmentDescriptorArray](metal/mtlrenderpasssamplebufferattachmentdescriptorarray.md)
- [MTLRenderPassSampleBufferAttachmentDescriptor](metal/mtlrenderpasssamplebufferattachmentdescriptor.md)
- [MTLLogicalToPhysicalColorAttachmentMap](metal/mtllogicaltophysicalcolorattachmentmap.md)
- [MTLDispatchThreadsIndirectArguments](metal/mtldispatchthreadsindirectarguments.md)
