---
title: MTLBinaryArchive
framework: metal
role: symbol
role_heading: Protocol
path: metal/mtlbinaryarchive
---

# MTLBinaryArchive

A container for pipeline state descriptors and their associated compiled shader code.

## Declaration

```swift
protocol MTLBinaryArchive : NSObjectProtocol
```

## Mentioned in

Creating binary archives from device-built pipeline state objects

## Topics

### Identifying the archive

- [device](metal/mtlbinaryarchive/device.md)
- [label](metal/mtlbinaryarchive/label.md)

### Adding pipeline descriptors

- [addComputePipelineFunctions(descriptor:)](metal/mtlbinaryarchive/addcomputepipelinefunctions(descriptor:).md)
- [addRenderPipelineFunctions(descriptor:)](metal/mtlbinaryarchive/addrenderpipelinefunctions(descriptor:).md)
- [addTileRenderPipelineFunctions(descriptor:)](metal/mtlbinaryarchive/addtilerenderpipelinefunctions(descriptor:).md)
- [addFunction(descriptor:library:)](metal/mtlbinaryarchive/addfunction(descriptor:library:).md)

### Serializing archives

- [serialize(to:)](metal/mtlbinaryarchive/serialize(to:).md)

### Instance Methods

- [addLibrary(descriptor:)](metal/mtlbinaryarchive/addlibrary(descriptor:).md)
- [addMeshRenderPipelineFunctions(descriptor:)](metal/mtlbinaryarchive/addmeshrenderpipelinefunctions(descriptor:).md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Shader library management

- [MTLLibrary](metal/mtllibrary.md)
- [MTLDynamicLibrary](metal/mtldynamiclibrary.md)
- [MTLCompileOptions](metal/mtlcompileoptions.md)
- [MTLLibraryType](metal/mtllibrarytype.md)
- [MTLLanguageVersion](metal/mtllanguageversion.md)
- [MTLCompileSymbolVisibility](metal/mtlcompilesymbolvisibility.md)
- [MTLLibraryOptimizationLevel](metal/mtllibraryoptimizationlevel.md)
