<!--
{
  "availability" : [
    "iOS: 14.0.0 -",
    "iPadOS: 14.0.0 -",
    "macCatalyst: 14.0.0 -",
    "macOS: 11.0.0 -",
    "tvOS: 14.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Metal",
  "identifier" : "/documentation/Metal/MTLCounterSamplingPoint",
  "metadataVersion" : "0.1.0",
  "role" : "Enumeration",
  "symbol" : {
    "kind" : "Enumeration",
    "modules" : [
      "Metal"
    ],
    "preciseIdentifier" : "c:@E@MTLCounterSamplingPoint"
  },
  "title" : "MTLCounterSamplingPoint"
}
-->

# MTLCounterSamplingPoint

Options for different times when you can sample GPU counters.

```
enum MTLCounterSamplingPoint
```

## Topics

### Reading sampling boundary types

[`MTLCounterSamplingPoint.atBlitBoundary`](/documentation/Metal/MTLCounterSamplingPoint/atBlitBoundary)

Counter sampling is allowed between blit commands in a blit pass.

[`MTLCounterSamplingPoint.atDispatchBoundary`](/documentation/Metal/MTLCounterSamplingPoint/atDispatchBoundary)

Counter sampling is allowed between kernel dispatches in a compute pass.

[`MTLCounterSamplingPoint.atDrawBoundary`](/documentation/Metal/MTLCounterSamplingPoint/atDrawBoundary)

Counter sampling is allowed between draw commands in a render pass.

[`MTLCounterSamplingPoint.atStageBoundary`](/documentation/Metal/MTLCounterSamplingPoint/atStageBoundary)

Counter sampling is allowed at the start and end of a render pass’s vertex and fragment stages, and at the start and end of compute and blit passes.

[`MTLCounterSamplingPoint.atTileDispatchBoundary`](/documentation/Metal/MTLCounterSamplingPoint/atTileDispatchBoundary)

Counter sampling is allowed between tile dispatches in a render pass.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)