---
title: MTL4RenderEncoderOptions
framework: metal
role: symbol
role_heading: Structure
path: metal/mtl4renderencoderoptions
---

# MTL4RenderEncoderOptions

Custom render pass options you specify at encoder creation time.

## Declaration

```swift
struct MTL4RenderEncoderOptions
```

## Overview

Overview Use these options to implement parallel encoding of render passes across multiple CPU threads by providing these values to the options parameter of makeRenderCommandEncoder(descriptor:options:) and observing these requirements: Commit all command encoders together in an array you provide to commit:count: or commit:count:options: The first command buffer in the array contains a render pass that you start with option suspending The last command buffer in the array contains the same render pass that you start with option resuming All intermediate command buffers between the first and last in the array contain the same render pass that you start with both resuming and suspending options. The sequence of render passes, in submission order, doesn’t intermix with compute, blit, acceleration structure or machine learning encoding. A command buffer shouldn’t contain a render pass that you start with option suspending if it already contains a render pass that you start with option resuming.

## Topics

### Initializers

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

### Type Properties

- [resuming](metal/mtl4renderencoderoptions/resuming.md)
- [suspending](metal/mtl4renderencoderoptions/suspending.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

### Submitting work to a GPU with Metal 4

- [MTL4CommandQueue](metal/mtl4commandqueue.md)
- [MTL4CommandQueueDescriptor](metal/mtl4commandqueuedescriptor.md)
- [MTL4CommandQueueError](metal/mtl4commandqueueerror-swift.struct.md)
- [MTL4CommandQueueError.Code](metal/mtl4commandqueueerror-swift.struct/code.md)
- [MTL4CommandQueueErrorDomain](metal/mtl4commandqueueerrordomain.md)
- [MTL4CommandBuffer](metal/mtl4commandbuffer.md)
- [MTL4CommandBufferOptions](metal/mtl4commandbufferoptions.md)
- [MTL4CommandEncoder](metal/mtl4commandencoder.md)
- [MTL4ArgumentTable](metal/mtl4argumenttable.md)
- [MTL4ArgumentTableDescriptor](metal/mtl4argumenttabledescriptor.md)
- [MTL4CommandAllocator](metal/mtl4commandallocator.md)
- [MTL4CommandAllocatorDescriptor](metal/mtl4commandallocatordescriptor.md)
- [MTL4CommitOptions](metal/mtl4commitoptions.md)
- [MTL4CommitFeedback](metal/mtl4commitfeedback.md)
- [MTL4CommitFeedbackHandler](metal/mtl4commitfeedbackhandler.md)
