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

# MTLLinkedFunctions

A set of related functions that Metal links to when necessary to create the function instance.

```
class MTLLinkedFunctions
```

## Overview

When you create a Metal function instance using an [`MTLFunctionDescriptor`](/documentation/Metal/MTLFunctionDescriptor), you specify additional functions that Metal needs to link to when it compiles and links the underlying shader code. Most often, you need to do this if your shader takes a visible function table as one or more of its arguments. For Metal to create the [`MTLFunction`](/documentation/Metal/MTLFunction) instance, it needs a complete list of functions that your shader can call so that it can resolve any dependencies and generate the correct code to run on the GPU.

## Topics

### Creating a linked functions instance

[`linkedFunctions`](/documentation/Metal/MTLLinkedFunctions/linkedFunctions)

Creates an empty linked functions object.

### Specifying related functions

[`functions`](/documentation/Metal/MTLLinkedFunctions/functions)

An array of function objects to link to the new function.

[`binaryFunctions`](/documentation/Metal/MTLLinkedFunctions/binaryFunctions)

An array of function objects already compiled to a binary representation to link.

[`groups`](/documentation/Metal/MTLLinkedFunctions/groups)

An optional list of groups specifying which functions your shader can call at each call site.

[`privateFunctions`](/documentation/Metal/MTLLinkedFunctions/privateFunctions)

An array of function objects to link to the new function, without exporting the functions publicly.



---

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)