---
title: MTLFeatureSet
framework: metal
role: symbol
role_heading: Enumeration
path: metal/mtlfeatureset
---

# MTLFeatureSet

The device feature sets that define specific platform, hardware, and software configurations.

## Declaration

```swift
enum MTLFeatureSet
```

## Overview

Overview If your app is running on an operating system that supports the supportsFamily(_:) method, use that method instead. See Detecting GPU features and Metal software versions for more information about MTLGPUFamily — the replacement for this enumeration —  and the feature set tables. This type doesn’t define constants for GPU families introduced after iOS GPU family 5. Metal feature sets define the feature availability, implementation limits, and pixel format capabilities for each device. The table shows the GPU families and their corresponding GPU hardware.  |   |   |   |   |   |   |   |  For more information on Mac support for Metal, see Mac computers that support Metal.

## Topics

### iOS GPU family 5

- [MTLFeatureSet.iOS_GPUFamily5_v1](metal/mtlfeatureset/ios_gpufamily5_v1.md)

### iOS GPU family 4

- [MTLFeatureSet.iOS_GPUFamily4_v2](metal/mtlfeatureset/ios_gpufamily4_v2.md)
- [MTLFeatureSet.iOS_GPUFamily4_v1](metal/mtlfeatureset/ios_gpufamily4_v1.md)

### iOS GPU family 3

- [MTLFeatureSet.iOS_GPUFamily3_v4](metal/mtlfeatureset/ios_gpufamily3_v4.md)
- [MTLFeatureSet.iOS_GPUFamily3_v3](metal/mtlfeatureset/ios_gpufamily3_v3.md)
- [MTLFeatureSet.iOS_GPUFamily3_v2](metal/mtlfeatureset/ios_gpufamily3_v2.md)
- [MTLFeatureSet.iOS_GPUFamily3_v1](metal/mtlfeatureset/ios_gpufamily3_v1.md)

### iOS GPU family 2

- [MTLFeatureSet.iOS_GPUFamily2_v5](metal/mtlfeatureset/ios_gpufamily2_v5.md)
- [MTLFeatureSet.iOS_GPUFamily2_v4](metal/mtlfeatureset/ios_gpufamily2_v4.md)
- [MTLFeatureSet.iOS_GPUFamily2_v3](metal/mtlfeatureset/ios_gpufamily2_v3.md)
- [MTLFeatureSet.iOS_GPUFamily2_v2](metal/mtlfeatureset/ios_gpufamily2_v2.md)
- [MTLFeatureSet.iOS_GPUFamily2_v1](metal/mtlfeatureset/ios_gpufamily2_v1.md)

### iOS GPU family 1

- [MTLFeatureSet.iOS_GPUFamily1_v5](metal/mtlfeatureset/ios_gpufamily1_v5.md)
- [MTLFeatureSet.iOS_GPUFamily1_v4](metal/mtlfeatureset/ios_gpufamily1_v4.md)
- [MTLFeatureSet.iOS_GPUFamily1_v3](metal/mtlfeatureset/ios_gpufamily1_v3.md)
- [MTLFeatureSet.iOS_GPUFamily1_v2](metal/mtlfeatureset/ios_gpufamily1_v2.md)
- [MTLFeatureSet.iOS_GPUFamily1_v1](metal/mtlfeatureset/ios_gpufamily1_v1.md)

### tvOS GPU family 2

- [MTLFeatureSet.tvOS_GPUFamily2_v2](metal/mtlfeatureset/tvos_gpufamily2_v2.md)
- [MTLFeatureSet.tvOS_GPUFamily2_v1](metal/mtlfeatureset/tvos_gpufamily2_v1.md)

### tvOS GPU family 1

- [MTLFeatureSet.tvOS_GPUFamily1_v4](metal/mtlfeatureset/tvos_gpufamily1_v4.md)
- [MTLFeatureSet.tvOS_GPUFamily1_v3](metal/mtlfeatureset/tvos_gpufamily1_v3.md)
- [MTLFeatureSet.tvOS_GPUFamily1_v2](metal/mtlfeatureset/tvos_gpufamily1_v2.md)
- [MTLFeatureSet.tvOS_GPUFamily1_v1](metal/mtlfeatureset/tvos_gpufamily1_v1-swift.enum.case.md)

### macOS GPU family 2

- [MTLFeatureSet.macOS_GPUFamily2_v1](metal/mtlfeatureset/macos_gpufamily2_v1.md)

### macOS GPU family 1

- [MTLFeatureSet.macOS_GPUFamily1_v4](metal/mtlfeatureset/macos_gpufamily1_v4.md)
- [MTLFeatureSet.macOS_GPUFamily1_v3](metal/mtlfeatureset/macos_gpufamily1_v3.md)
- [MTLFeatureSet.macOS_GPUFamily1_v2](metal/mtlfeatureset/macos_gpufamily1_v2.md)
- [MTLFeatureSet.macOS_GPUFamily1_v1](metal/mtlfeatureset/macos_gpufamily1_v1.md)

### macOS tier 2

- [MTLFeatureSet.macOS_ReadWriteTextureTier2](metal/mtlfeatureset/macos_readwritetexturetier2.md)

### Initializers

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

### Type Properties

- [osx_GPUFamily1_v1](metal/mtlfeatureset/osx_gpufamily1_v1.md)
- [osx_GPUFamily1_v2](metal/mtlfeatureset/osx_gpufamily1_v2.md)
- [osx_ReadWriteTextureTier2](metal/mtlfeatureset/osx_readwritetexturetier2.md)
- [tvos_GPUFamily1_v1](metal/mtlfeatureset/tvos_gpufamily1_v1-swift.type.property.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

### Checking a GPU device’s feature support

- [supportsFamily(_:)](metal/mtldevice/supportsfamily(_:).md)
- [MTLGPUFamily](metal/mtlgpufamily.md)
- [supportsFeatureSet(_:)](metal/mtldevice/supportsfeatureset(_:).md)
