VulkanSceneGraph icon indicating copy to clipboard operation
VulkanSceneGraph copied to clipboard

Draft: Initial debug utils naming implementation

Open AnyOldName3 opened this issue 10 months ago • 6 comments

Adds names to some objects (pipelines, shader stages, and pipeline layouts so far) via VK_EXT_debug_utils. This means that in tools like RenderDoc, they get names instead of numbers, and in the logs from validation errors or the API dump layer, they get names instead of pointers, making it possible to have some idea of what was being drawn without needing RenderDoc.

It's a draft because the performance impact even when it's off isn't zero. I'm not sure anything can be done about that other than gating it off behind a #define, and therefore a CMake option. Even having names in the scenegraph without telling Vulkan about them isn't free as it means a vsg::Auxiliary needs to exist for the object, meaning extra memory usage (although vsg::Auxiliary uses the system allocator, so hopefully won't end up wasting space in hot cache lines).

For now, it's still potentially useful to temporarily merge this branch while investigating a problem and then discard the changes once it's been solved, but I hope we can come up with something more maintainable.

The built-in shader sets are altered because they've been given names. A counterpart PR to vsgExamples will be opened shortly.

AnyOldName3 avatar Mar 10 '25 17:03 AnyOldName3