---
title: "makeRenderPipelineState(tileDescriptor:options:reflection:)"
framework: metal
role: symbol
role_heading: Instance Method
path: "metal/mtldevice/makerenderpipelinestate(tiledescriptor:options:reflection:)"
---

# makeRenderPipelineState(tileDescriptor:options:reflection:)

Synchronously creates a tile shader’s render pipeline state and reflection information.

## Declaration

```swift
func makeRenderPipelineState(tileDescriptor descriptor: MTLTileRenderPipelineDescriptor, options: MTLPipelineOption, reflection: AutoreleasingUnsafeMutablePointer<MTLAutoreleasedRenderPipelineReflection?>?) throws -> any MTLRenderPipelineState
```

## Parameters

- `descriptor`: An doc://com.apple.metal/documentation/Metal/MTLTileRenderPipelineDescriptor instance.
- `options`: An doc://com.apple.metal/documentation/Metal/MTLPipelineOption instance that represents the reflection information you want the method to generate.
- `reflection`: In Swift, an optional pointer to an doc://com.apple.metal/documentation/Metal/MTLAutoreleasedRenderPipelineReflection optional. In Objective-C, a pointer to an doc://com.apple.metal/documentation/Metal/MTLAutoreleasedRenderPipelineReflection instance. Pass nil in either language when you don’t need reflection data. Otherwise on return, if the method completes successfully, it assigns an doc://com.apple.metal/documentation/Metal/MTLRenderPipelineReflection instance to the pointee, which contains the details about the function arguments.

## Return Value

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

## See Also

### Creating tile render pipeline states

- [makeRenderPipelineState(tileDescriptor:options:)](metal/mtldevice/makerenderpipelinestate(tiledescriptor:options:).md)
- [makeRenderPipelineState(tileDescriptor:options:completionHandler:)](metal/mtldevice/makerenderpipelinestate(tiledescriptor:options:completionhandler:).md)
