---
title: MTLHeapType
framework: metal
role: symbol
role_heading: Enumeration
path: metal/mtlheaptype
---

# MTLHeapType

The options you use to choose the heap type.

## Declaration

```swift
enum MTLHeapType
```

## Topics

### Specifying the heap type

- [MTLHeapType.automatic](metal/mtlheaptype/automatic.md)
- [MTLHeapType.placement](metal/mtlheaptype/placement.md)
- [MTLHeapType.sparse](metal/mtlheaptype/sparse.md)

### Initializers

- [init(rawValue:)](metal/mtlheaptype/init(rawvalue:).md)

## Relationships

### Conforms To

- [BitwiseCopyable](swift/bitwisecopyable.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [RawRepresentable](swift/rawrepresentable.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Resource memory allocation and management

- [Using argument buffers with resource heaps](metal/using-argument-buffers-with-resource-heaps.md)
- [Implementing a multistage image filter using heaps and events](metal/implementing-a-multistage-image-filter-using-heaps-and-events.md)
- [Implementing a multistage image filter using heaps and fences](metal/implementing-a-multistage-image-filter-using-heaps-and-fences.md)
- [MTLHeap](metal/mtlheap.md)
- [MTLHeapDescriptor](metal/mtlheapdescriptor.md)
- [MTLSizeAndAlign](metal/mtlsizeandalign.md)
