---
title: MTLRenderStages
framework: metal
role: symbol
role_heading: Structure
path: metal/mtlrenderstages
---

# MTLRenderStages

The stages in a render pass that triggers a synchronization command.

## Declaration

```swift
struct MTLRenderStages
```

## Overview

Overview Render stage boundaries provide synchronization opportunities within a render pass for specific resources and resource types. For example, you can designate render stage a synchronization point for a memory barrier or a fence (see memoryBarrier(resources:after:before:) and MTLFence, respectively). This allows a GPU to overlap its execution of two adjacent stages, which can shorten its overall runtime for the render pass.

## Topics

### Render pass stages

- [object](metal/mtlrenderstages/object.md)
- [mesh](metal/mtlrenderstages/mesh.md)
- [vertex](metal/mtlrenderstages/vertex.md)
- [fragment](metal/mtlrenderstages/fragment.md)
- [tile](metal/mtlrenderstages/tile.md)

### Swift support

- [init(rawValue:)](metal/mtlrenderstages/init(rawvalue:).md)

## Relationships

### Conforms To

- [BitwiseCopyable](swift/bitwisecopyable.md)
- [Equatable](swift/equatable.md)
- [ExpressibleByArrayLiteral](swift/expressiblebyarrayliteral.md)
- [OptionSet](swift/optionset.md)
- [RawRepresentable](swift/rawrepresentable.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)
- [SetAlgebra](swift/setalgebra.md)

## See Also

### Synchronizing with barriers and fences

- [Synchronizing stages within a pass](metal/synchronizing-stages-within-a-pass.md)
- [Synchronizing passes with a fence](metal/synchronizing-passes-with-a-fence.md)
- [Synchronizing passes with consumer barriers](metal/synchronizing-passes-with-consumer-barriers.md)
- [Synchronizing passes with producer barriers](metal/synchronizing-passes-with-producer-barriers.md)
- [Synchronizing CPU and GPU work](metal/synchronizing-cpu-and-gpu-work.md)
- [Implementing a multistage image filter using heaps and fences](metal/implementing-a-multistage-image-filter-using-heaps-and-fences.md)
- [MTLStages](metal/mtlstages.md)
- [MTLFence](metal/mtlfence.md)
- [MTLBarrierScope](metal/mtlbarrierscope.md)
- [MTL4VisibilityOptions](metal/mtl4visibilityoptions.md)
