---
title: MTLRenderPipelineReflection
framework: metal
role: symbol
role_heading: Class
path: metal/mtlrenderpipelinereflection
---

# MTLRenderPipelineReflection

Information about the arguments of a graphics function.

## Declaration

```swift
class MTLRenderPipelineReflection
```

## Overview

Overview The MTLRenderPipelineReflection class is an interface that represents the parameters for the shaders in a render pipeline state (see MTLRenderPipelineState). Each pipeline state can include object, mesh, vertex, fragment, and tile shaders. You create a reflection instance at the same time as the pipeline state that it represents by calling the appropriate MTLDevice method. For example, the makeRenderPipelineState(descriptor:options:reflection:) and makeRenderPipelineState(descriptor:options:completionHandler:) methods create the pipeline state and the reflection instances at the same time. important: Only create reflection instances if you need them because each one can require a significant amount of memory. For more information, see Pipeline state creation.

## Topics

### Inspecting a shader’s parameter

- [fragmentBindings](metal/mtlrenderpipelinereflection/fragmentbindings.md)
- [meshBindings](metal/mtlrenderpipelinereflection/meshbindings.md)
- [objectBindings](metal/mtlrenderpipelinereflection/objectbindings.md)
- [tileBindings](metal/mtlrenderpipelinereflection/tilebindings.md)
- [vertexBindings](metal/mtlrenderpipelinereflection/vertexbindings.md)

### Deprecated

- [vertexArguments](metal/mtlrenderpipelinereflection/vertexarguments.md)
- [fragmentArguments](metal/mtlrenderpipelinereflection/fragmentarguments.md)
- [tileArguments](metal/mtlrenderpipelinereflection/tilearguments.md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Introspection data

- [MTLComputePipelineReflection](metal/mtlcomputepipelinereflection.md)
- [MTLAutoreleasedComputePipelineReflection](metal/mtlautoreleasedcomputepipelinereflection.md)
- [MTLAutoreleasedRenderPipelineReflection](metal/mtlautoreleasedrenderpipelinereflection.md)
- [MTLBindingType](metal/mtlbindingtype.md)
- [MTLBinding](metal/mtlbinding.md)
- [MTLBindingAccess](metal/mtlbindingaccess.md)
- [MTLBufferBinding](metal/mtlbufferbinding.md)
- [MTLTextureBinding](metal/mtltexturebinding.md)
- [MTLThreadgroupBinding](metal/mtlthreadgroupbinding.md)
- [MTLObjectPayloadBinding](metal/mtlobjectpayloadbinding.md)
