---
title: MTLStorageMode
framework: metal
role: symbol
role_heading: Enumeration
path: metal/mtlstoragemode
---

# MTLStorageMode

Options for the memory location and access permissions for a resource.

## Declaration

```swift
enum MTLStorageMode
```

## Mentioned in

Setting resource storage modes

## Overview

Overview For more guidance on how to choose storage modes, see Setting resource storage modes.

## Topics

### Storage mode options

- [MTLStorageMode.shared](metal/mtlstoragemode/shared.md)
- [MTLStorageMode.managed](metal/mtlstoragemode/managed.md)
- [MTLStorageMode.private](metal/mtlstoragemode/private.md)
- [MTLStorageMode.memoryless](metal/mtlstoragemode/memoryless.md)

### Initializers

- [init(rawValue:)](metal/mtlstoragemode/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

### Reading memory and storage properties

- [cpuCacheMode](metal/mtlresource/cpucachemode.md)
- [storageMode](metal/mtlresource/storagemode.md)
- [hazardTrackingMode](metal/mtlresource/hazardtrackingmode.md)
- [resourceOptions](metal/mtlresource/resourceoptions.md)
- [MTLCPUCacheMode](metal/mtlcpucachemode.md)
- [MTLHazardTrackingMode](metal/mtlhazardtrackingmode.md)
