---
title: "makeRenderPipelineState(descriptor:options:)"
framework: metal
role: symbol
role_heading: Instance Method
path: "metal/mtldevice/makerenderpipelinestate(descriptor:options:)-yrak"
---

# makeRenderPipelineState(descriptor:options:)

Synchronously creates a mesh render pipeline state and reflection information in a tuple.

## Declaration

```swift
func makeRenderPipelineState(descriptor: MTLMeshRenderPipelineDescriptor, options: MTLPipelineOption) throws -> (any MTLRenderPipelineState, MTLRenderPipelineReflection?)
```

## Parameters

- `descriptor`: An doc://com.apple.metal/documentation/Metal/MTLMeshRenderPipelineDescriptor instance.
- `options`: An doc://com.apple.metal/documentation/Metal/MTLPipelineOption instance that represents the reflection information you want the method to generate.

## Return Value

Return Value A tuple with a new MTLRenderPipelineState instance and an MTLRenderPipelineReflection optional instance if the method completes successfully; otherwise Swift throws an error and Objective-C returns nil.

## Discussion

Discussion Use the graphics-rendering pipeline state to configure a render pass by calling the setRenderPipelineState(_:) method of an MTLRenderCommandEncoder instance.

## See Also

### Creating render pipeline states with mesh shaders

- [makeRenderPipelineState(descriptor:options:completionHandler:)](metal/mtldevice/makerenderpipelinestate(descriptor:options:completionhandler:)-1wvya.md)
