---
title: MTL4CounterHeap
framework: metal
role: symbol
role_heading: Protocol
path: metal/mtl4counterheap
---

# MTL4CounterHeap

Represents an opaque, driver-controlled section of memory that can store GPU counter data.

## Declaration

```swift
protocol MTL4CounterHeap : NSObjectProtocol
```

## Overview

Overview The data instances that this type stores correspond to the MTL4CounterHeapType heap type that you assign at creation time.

## Topics

### Instance Properties

- [count](metal/mtl4counterheap/count.md)
- [label](metal/mtl4counterheap/label.md)
- [type](metal/mtl4counterheap/type.md)

### Instance Methods

- [invalidateCounterRange(_:)](metal/mtl4counterheap/invalidatecounterrange(_:).md)
- [resolveCounterRange(_:)](metal/mtl4counterheap/resolvecounterrange(_:).md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Submitting work to a GPU with Metal 4

- [MTL4CommandQueue](metal/mtl4commandqueue.md)
- [MTL4CommandQueueDescriptor](metal/mtl4commandqueuedescriptor.md)
- [MTL4CommandQueueError](metal/mtl4commandqueueerror-swift.struct.md)
- [MTL4CommandQueueError.Code](metal/mtl4commandqueueerror-swift.struct/code.md)
- [MTL4CommandQueueErrorDomain](metal/mtl4commandqueueerrordomain.md)
- [MTL4CommandBuffer](metal/mtl4commandbuffer.md)
- [MTL4CommandBufferOptions](metal/mtl4commandbufferoptions.md)
- [MTL4CommandEncoder](metal/mtl4commandencoder.md)
- [MTL4RenderEncoderOptions](metal/mtl4renderencoderoptions.md)
- [MTL4ArgumentTable](metal/mtl4argumenttable.md)
- [MTL4ArgumentTableDescriptor](metal/mtl4argumenttabledescriptor.md)
- [MTL4CommandAllocator](metal/mtl4commandallocator.md)
- [MTL4CommandAllocatorDescriptor](metal/mtl4commandallocatordescriptor.md)
- [MTL4CommitOptions](metal/mtl4commitoptions.md)
- [MTL4CommitFeedback](metal/mtl4commitfeedback.md)
