---
title: "makeRenderCommandEncoder(descriptor:options:)"
framework: metal
role: symbol
role_heading: Instance Method
path: "metal/mtl4commandbuffer/makerendercommandencoder(descriptor:options:)"
---

# makeRenderCommandEncoder(descriptor:options:)

Creates a render command encoder from a render pass descriptor with additional options.

## Declaration

```swift
func makeRenderCommandEncoder(descriptor: MTL4RenderPassDescriptor, options: MTL4RenderEncoderOptions = []) -> (any MTL4RenderCommandEncoder)?
```

## Parameters

- `descriptor`: Descriptor for the render pass.
- `options`: doc://com.apple.metal/documentation/Metal/MTL4RenderEncoderOptions instance that provide render pass options.

## Return Value

Return Value The created MTL4RenderCommandEncoder instance, or nil if the function fails.

## Discussion

Discussion This method creates a render command encoder to encode a render pass, whilst providing you the option to define some render pass characteristics via an instance of MTL4RenderEncoderOptions. Use these options to configure suspending/resuming render command encoders, which allow you to encode render passes from multiple threads simultaneously.
