38 lines
1.4 KiB
Markdown
38 lines
1.4 KiB
Markdown
# 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. |