<!--
{
  "availability" : [
    "iOS: 8.0.0 -",
    "iPadOS: 8.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.11.0 -",
    "tvOS: -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Metal",
  "identifier" : "/documentation/Metal/MTLRenderPipelineReflection",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Metal"
    ],
    "preciseIdentifier" : "c:objc(cs)MTLRenderPipelineReflection"
  },
  "title" : "MTLRenderPipelineReflection"
}
-->

# MTLRenderPipelineReflection

Information about the arguments of a graphics function.

```
class MTLRenderPipelineReflection
```

## Overview

The [`MTLRenderPipelineReflection`](/documentation/Metal/MTLRenderPipelineReflection) class is an interface that represents the parameters for the shaders in a render pipeline state (see [`MTLRenderPipelineState`](/documentation/Metal/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`](/documentation/Metal/MTLDevice) method. For example, the [`makeRenderPipelineState(descriptor:options:reflection:)`](/documentation/Metal/MTLDevice/makeRenderPipelineState(descriptor:options:reflection:)) and [`makeRenderPipelineState(descriptor:options:completionHandler:)`](/documentation/Metal/MTLDevice/makeRenderPipelineState(descriptor:options:completionHandler:)-5gdww) 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](/documentation/Metal/pipeline-state-creation).

## Topics

### Inspecting a shader’s parameter

[`fragmentBindings`](/documentation/Metal/MTLRenderPipelineReflection/fragmentBindings)

An array of binding instances, each of which represents a parameter of the pipeline state’s fragment shader.

[`meshBindings`](/documentation/Metal/MTLRenderPipelineReflection/meshBindings)

An array of binding instances, each of which represents a parameter of the pipeline state’s mesh shader.

[`objectBindings`](/documentation/Metal/MTLRenderPipelineReflection/objectBindings)

An array of binding instances, each of which represents a parameter of the pipeline state’s object shader.

[`tileBindings`](/documentation/Metal/MTLRenderPipelineReflection/tileBindings)

An array of binding instances, each of which represents a parameter of the pipeline state’s tile shader.

[`vertexBindings`](/documentation/Metal/MTLRenderPipelineReflection/vertexBindings)

An array of binding instances, each of which represents a parameter of the pipeline state’s vertex shader.

### Deprecated

[`vertexArguments`](/documentation/Metal/MTLRenderPipelineReflection/vertexArguments)

An array of argument instances, each of which represent a parameter of the pipeline state’s vertex shader.

[`fragmentArguments`](/documentation/Metal/MTLRenderPipelineReflection/fragmentArguments)

An array of argument instances, each of which represent a parameter of the pipeline state’s fragment shader.

[`tileArguments`](/documentation/Metal/MTLRenderPipelineReflection/tileArguments)

An array of argument instances, each of which represent a parameter of the pipeline state’s tile shader.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)