---
title: MTLCounterSet
framework: metal
role: symbol
role_heading: Protocol
path: metal/mtlcounterset
---

# MTLCounterSet

A collection of individual counters a GPU device supports for a counter set.

## Declaration

```swift
protocol MTLCounterSet : NSObjectProtocol, Sendable
```

## Overview

Overview You can determine which counter sets a GPU supports by checking an MTLDevice instance’s counterSets property. A counter set’s name property typically matches one of the common counter set names that MTLCommonCounterSet defines. Check whether a GPU device supports a specific counter by comparing elements of the counters property with a counter’s common name that MTLCommonCounter defines. important: Some GPUs may only support some of the counters within a counter set. For more information, see Confirming which counters and counter sets a GPU supports.

## Topics

### Identifying a counter set

- [name](metal/mtlcounterset/name.md)

### Checking which counters a GPU supports

- [counters](metal/mtlcounterset/counters.md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Counters and counter sets

- [Confirming which counters and counter sets a GPU supports](metal/confirming-which-counters-and-counter-sets-a-gpu-supports.md)
- [MTLCommonCounterSet](metal/mtlcommoncounterset.md)
- [MTLCounter](metal/mtlcounter.md)
- [MTLCommonCounter](metal/mtlcommoncounter.md)
