An object that defines custom boundaries for a GPU frame capture.
SDKs
- iOS 11.0+
- macOS 10.13+
- Mac Catalyst 13.0+
- tvOS 11.0+
Framework
- Metal
Declaration
protocol MTLCaptureScope
Overview
A capture scope works with Metal’s frame capture feature to filter a captured frame to include the specific commands that you choose. By contrast, when you capture a frame with the default capture scope by clicking the camera button on Xcode’s debug bar, the resulting capture includes all the data from a single frame. You create your own capture scope when you want to choose which data Metal should record.
To determine exactly which Metal commands to record in a captured frame, call begin()
and end()
around the Metal calls you want the capture to include. In the case of a rendering loop, your calls to begin()
and end()
can capture a small part of a frame, or capture data across multiple frames.
You can use capture scopes in a few different ways:
You can change Xcode’s default capturing behavior.
In Xcode, you can add additional capture scopes that appear when you click and hold the camera button on the debug bar.
You can programmatically trigger a capture session using a specific scope.
For more information about frame capture, see Frame Capture Debugging Tools. For more information on creating custom capture scopes, see Creating a Custom Capture Scope.