---
title: MTLFunctionDescriptor
framework: metal
role: symbol
role_heading: Class
path: metal/mtlfunctiondescriptor
---

# MTLFunctionDescriptor

A description of a function object to create.

## Declaration

```swift
class MTLFunctionDescriptor
```

## Mentioned in

Compiling binary archives from a custom configuration script

## Topics

### Specifying the function configuration

- [name](metal/mtlfunctiondescriptor/name.md)
- [specializedName](metal/mtlfunctiondescriptor/specializedname.md)
- [constantValues](metal/mtlfunctiondescriptor/constantvalues.md)
- [options](metal/mtlfunctiondescriptor/options.md)
- [binaryArchives](metal/mtlfunctiondescriptor/binaryarchives.md)
- [MTLFunctionOptions](metal/mtlfunctionoptions.md)
- [MTLLinkedFunctions](metal/mtllinkedfunctions.md)

## Relationships

### Inherits From

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

### Inherited By

- [MTLIntersectionFunctionDescriptor](metal/mtlintersectionfunctiondescriptor.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSCopying](foundation/nscopying.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Related Documentation

- [makeFunction(descriptor:completionHandler:)](metal/mtllibrary/makefunction(descriptor:completionhandler:).md)
- [makeFunction(descriptor:)](metal/mtllibrary/makefunction(descriptor:).md)

### Shader functions

- [MTLFunction](metal/mtlfunction.md)
- [MTLFunctionHandle](metal/mtlfunctionhandle.md)
- [MTLVisibleFunctionTableDescriptor](metal/mtlvisiblefunctiontabledescriptor.md)
- [MTLVisibleFunctionTable](metal/mtlvisiblefunctiontable.md)
- [MTLIntersectionFunctionDescriptor](metal/mtlintersectionfunctiondescriptor.md)
- [MTLIntersectionFunctionTableDescriptor](metal/mtlintersectionfunctiontabledescriptor.md)
- [MTLIntersectionFunctionTable](metal/mtlintersectionfunctiontable.md)
