---
title: MTL4Compiler
framework: metal
role: symbol
role_heading: Protocol
path: metal/mtl4compiler
---

# MTL4Compiler

A abstraction for a pipeline state and shader function compiler.

## Declaration

```swift
protocol MTL4Compiler : NSObjectProtocol, Sendable
```

## Mentioned in

Using the Metal 4 compilation API

## Topics

### Instance Properties

- [device](metal/mtl4compiler/device.md)
- [label](metal/mtl4compiler/label.md)
- [pipelineDataSetSerializer](metal/mtl4compiler/pipelinedatasetserializer.md)

### Instance Methods

- [makeBinaryFunction(descriptor:compilerTaskOptions:)](metal/mtl4compiler/makebinaryfunction(descriptor:compilertaskoptions:)-5o46e.md)
- [makeBinaryFunction(descriptor:compilerTaskOptions:)](metal/mtl4compiler/makebinaryfunction(descriptor:compilertaskoptions:)-hkc4.md)
- [makeComputePipelineState(descriptor:dynamicLinkingDescriptor:compilerTaskOptions:)](metal/mtl4compiler/makecomputepipelinestate(descriptor:dynamiclinkingdescriptor:compilertaskoptions:)-19x.md)
- [makeComputePipelineState(descriptor:dynamicLinkingDescriptor:compilerTaskOptions:)](metal/mtl4compiler/makecomputepipelinestate(descriptor:dynamiclinkingdescriptor:compilertaskoptions:)-7dqdm.md)
- [makeDynamicLibrary(library:)](metal/mtl4compiler/makedynamiclibrary(library:).md)
- [makeDynamicLibrary(url:)](metal/mtl4compiler/makedynamiclibrary(url:).md)
- [makeLibrary(descriptor:)](metal/mtl4compiler/makelibrary(descriptor:).md)
- [makeMachineLearningPipelineState(descriptor:)](metal/mtl4compiler/makemachinelearningpipelinestate(descriptor:)-36hxx.md)
- [makeMachineLearningPipelineState(descriptor:)](metal/mtl4compiler/makemachinelearningpipelinestate(descriptor:)-909v1.md)
- [makeRenderPipelineState(descriptor:dynamicLinkingDescriptor:compilerTaskOptions:)](metal/mtl4compiler/makerenderpipelinestate(descriptor:dynamiclinkingdescriptor:compilertaskoptions:)-66wsk.md)
- [makeRenderPipelineState(descriptor:dynamicLinkingDescriptor:compilerTaskOptions:)](metal/mtl4compiler/makerenderpipelinestate(descriptor:dynamiclinkingdescriptor:compilertaskoptions:)-84kox.md)
- [makeRenderPipelineStateBySpecialization(descriptor:pipeline:)](metal/mtl4compiler/makerenderpipelinestatebyspecialization(descriptor:pipeline:)-2636j.md)
- [makeRenderPipelineStateBySpecialization(descriptor:pipeline:)](metal/mtl4compiler/makerenderpipelinestatebyspecialization(descriptor:pipeline:)-7s2wp.md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Shader compilation

- [Metal libraries](metal/metal-libraries.md)
- [Metal dynamic libraries](metal/metal-dynamic-libraries.md)
- [Metal binary archives](metal/metal-binary-archives.md)
- [MTL4CompilerDescriptor](metal/mtl4compilerdescriptor.md)
- [MTL4CompilerTaskOptions](metal/mtl4compilertaskoptions.md)
- [MTL4CompilerTaskStatus](metal/mtl4compilertaskstatus.md)
- [MTL4Archive](metal/mtl4archive.md)
- [MTL4BinaryFunction](metal/mtl4binaryfunction.md)
- [MTL4BinaryFunctionDescriptor](metal/mtl4binaryfunctiondescriptor.md)
- [MTL4BinaryFunctionOptions](metal/mtl4binaryfunctionoptions.md)
- [MTL4PipelineStageDynamicLinkingDescriptor](metal/mtl4pipelinestagedynamiclinkingdescriptor.md)
