dawn-cmake/docs/DebugMarkers.md

38 lines
1.4 KiB
Markdown
Raw Normal View History

# Debug Markers
Dawn provides debug tooling integration for each backend.
Debugging markers are exposed through this API:
```
partial GPUProgrammablePassEncoder {
void pushDebugGroup(const char * markerLabel);
void popDebugGroup();
void insertDebugMarker(const char * markerLabel);
};
```
These APIs will result in silent no-ops if they are used without setting up
the execution environment properly. Each backend has a specific process
for setting up this environment.
## D3D12
Debug markers are currently unimplemented on D3D12 pending resolution of a licensing issue.
## Vulkan
Debug markers on Vulkan are implemented with [VK_EXT_debug_marker](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VK_EXT_debug_marker).
To enable marker functionality, you must launch your application from your debugging tool. Attaching to an already running application is not supported.
Vulkan markers have been tested with [RenderDoc](https://renderdoc.org/).
## Metal
Debug markers on Metal are used with the XCode debugger.
To enable marker functionality, you must launch your application from XCode and use [GPU Frame Capture](https://developer.apple.com/documentation/metal/tools_profiling_and_debugging/metal_gpu_capture).
## OpenGL
Debug markers on OpenGL are not implemented and will result in a silent no-op. This is due to low adoption of the GL_EXT_debug_marker extension in Linux device drivers.