mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-09 13:38:00 +00:00
Implementation of Debug Marker APIs
Introduces pushDebugGroup, popDebugGroup, and insertDebugMarker implementations for Vulkan and Metal using VK_EXT_debug_marker and XCode, respectively. Bug: dawn:44 Change-Id: I0ae56c4d67aa832123f27a1fcdddf65746261e57 Reviewed-on: https://dawn-review.googlesource.com/c/4241 Commit-Queue: Brandon Jones <brandon1.jones@intel.com> Reviewed-by: Kai Ninomiya <kainino@chromium.org>
This commit is contained in:
committed by
Commit Bot service account
parent
938811eef9
commit
11d32c8095
38
docs/DebugMarkers.md
Normal file
38
docs/DebugMarkers.md
Normal file
@@ -0,0 +1,38 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user