---
title: MTLResourceOptions
framework: metal
role: symbol
role_heading: Structure
path: metal/mtlresourceoptions
---

# MTLResourceOptions

Optional arguments used to set the behavior of a resource.

## Declaration

```swift
struct MTLResourceOptions
```

## Mentioned in

Setting resource storage modes

## Topics

### Initializing resource options

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

### Specifying CPU cache modes

- [cpuCacheModeWriteCombined](metal/mtlresourceoptions/cpucachemodewritecombined.md)

### Specifying storage modes

- [storageModeShared](metal/mtlresourceoptions/storagemodeshared.md)
- [storageModeManaged](metal/mtlresourceoptions/storagemodemanaged.md)
- [storageModePrivate](metal/mtlresourceoptions/storagemodeprivate.md)
- [storageModeMemoryless](metal/mtlresourceoptions/storagemodememoryless.md)

### Specifying hazard tracking

- [hazardTrackingModeTracked](metal/mtlresourceoptions/hazardtrackingmodetracked.md)
- [hazardTrackingModeUntracked](metal/mtlresourceoptions/hazardtrackingmodeuntracked.md)

### Deprecated options

- [optionCPUCacheModeWriteCombined](metal/mtlresourceoptions/optioncpucachemodewritecombined.md)

## Relationships

### Conforms To

- [BitwiseCopyable](swift/bitwisecopyable.md)
- [Equatable](swift/equatable.md)
- [ExpressibleByArrayLiteral](swift/expressiblebyarrayliteral.md)
- [OptionSet](swift/optionset.md)
- [RawRepresentable](swift/rawrepresentable.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)
- [SetAlgebra](swift/setalgebra.md)

## See Also

### Common resource functionality

- [MTLGPUAddress](metal/mtlgpuaddress.md)
- [MTLAllocation](metal/mtlallocation.md)
- [MTLResource](metal/mtlresource.md)
- [MTLResourceUsage](metal/mtlresourceusage.md)
- [MTLResourceID](metal/mtlresourceid.md)
