https://bugs.winehq.org/show_bug.cgi?id=49813
Bug ID: 49813 Summary: Implement debugging feedback extensions (VK_EXT_debug_utils/VK_EXT_debug_report) to forward data to Linux impl Product: Wine Version: unspecified Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: enhancement Priority: P2 Component: winevulkan Assignee: wine-bugs@winehq.org Reporter: loothelion@nvidia.com Distribution: ---
Was discussing the following earlier with Georg Lehmann and Hans-Kristian Arntzen:
Looking for a way to forward application Vulkan API debugging info (tagged objects / perfmarkers / queue-labels) such that the host loader will receive these calls from the windows application.
I believe that VK_EXT_debug_marker should pass-through fine with ToT winevulkan, but that should be confirmed.
A few thoughts on test cases to verify this missing functionality / verify an implementation:
- Sascha Willems' debugmarker example - https://github.com/SaschaWillems/Vulkan/tree/master/examples/debugmarker (uses VK_EXT_debug_marker)
- Quake 2 RTX - https://github.com/NVIDIA/Q2RTX (uses VK_EXT_debug_utils/VK_EXT_debug_report)
- Should add to dlls/vulkan-1/tests for a simple usage of tagging an object (similar to the private data test). Maybe a small companion layer that just plainly prints out debug information would also be of use.
Connecting to these applications via a graphics debugging tool should yield Vulkan debug information from the application.
Some potential challenges that may be hit:
- Implementation of debug utils messenger callback in concern with calling-convention and alignment
- make_vulkan currently notes interaction issues with VK_EXT_debug_marker and VK_EXT_debug_utils and implementations within LunarG's vulkan-1.dll, we may wish to conditionally expose this functionality either via a regkey, or if we detect WINE's vulkan-1.dll implementation is in use.
Helpful links: - https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VK_EXT... - https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VK_EXT... - https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VK_EXT...