---
title: MTLComputePipelineReflection
framework: metal
role: symbol
role_heading: Class
path: metal/mtlcomputepipelinereflection
---

# MTLComputePipelineReflection

Information about the arguments of a compute function.

## Declaration

```swift
class MTLComputePipelineReflection
```

## Overview

Overview An MTLComputePipelineReflection object provides access to the arguments of the compute function used in an MTLComputePipelineState object. An MTLComputePipelineReflection object can be created along with an MTLComputePipelineState object. Don’t create an MTLComputePipelineReflection object directly. Instead, call either the makeComputePipelineState(function:options:reflection:) or makeComputePipelineState(function:options:completionHandler:) method of MTLDevice to create both an MTLComputePipelineState object and an MTLComputePipelineReflection object. MTLComputePipelineReflection objects can use a significant amount of memory; release any strong references to them after you finish creating pipeline objects.

## Topics

### Obtaining the arguments of the compute function

- [arguments](metal/mtlcomputepipelinereflection/arguments.md)

### Instance Properties

- [bindings](metal/mtlcomputepipelinereflection/bindings.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

- [MTLAutoreleasedComputePipelineReflection](metal/mtlautoreleasedcomputepipelinereflection.md)
- [MTLRenderPipelineReflection](metal/mtlrenderpipelinereflection.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)
