Nsight Aftermath Not Capturing Vulkan Debug Names Nor Shader Information

I set up my vulkan application to use vulkan debug names.
I enabled all tracking options in nsight aftermath.
But when i open an nsight aftermath dump i cant see any shader information nor resource names.
This is quite inconvenient, having at least shader names or spirv line where the error occured would be a big improvement. Callstack capture does work.

I made sure via other tools, renderdoc and nsight graphics, that the resource debug names are applied.

Configuration:
win11: Version 10.0.22631 Build 22631
GPU: RTX4080, driver: 560.95
Nsight Graphics 2024.1.1
Nsight Aftermath 2024.1.1
Application is using vulkan 1.3

Hi patrick.ahrens.32369,

Thank you for using Nsight Aftermath and providing your feedback. Do you set the proper search path for Aftermath to get the shader info? Could you please try to set the corresponding path in Tools → Options → Search Paths, and see if it would show some help.

Thanks
An

I give it the spirv path and it can find them.
The spirv is displayed correctly.

But not the hlsl code. Im not sure how i need to format the name of the files etc in order for nsight to find the shader code.

I compile my shaders with slangc to spirv. I enable debug information for slangc.
Nsight finds the spirv file but is unable to map the src line to the crash location.

This is how i set the search paths. I assumed i may have to set the path to shader debug info to the path where aftermath writes the nvdbg files to as it cant find them for some reason.

I now configured aftermath to write the crash dumps and the debug shader infos to the same folder.
The behavior changed now.

I see this error:
image

It implies its expected that it does not contain debug il info when the spiv shader binary is compiled with source level debug info. So nsight just cant map any spirv at all? Or is there another way to embed shader debug info that i am missing?


I removed the source level debug info from the spriv compilation.

Now nsight is able to map the spirv to the offending line causing the crash.
This looks like it is correct to me.

But now i still dont have a source code mapping.

This last message sounds like a contradiction to me.
I have to provide “stripped” (I assume this means no shader debug info) spirv, but then it cant link the source code.
So is source code linking unsupported for spirv/vulkan?

I made a similar feature request through the bug-reporting feature in nsight a couple of months ago. The issue I was having was while using GLSL though, via glslang. I suggested that if the full source info was available within the SPIR-V file (which it is included in text form) that nsight graphics when displaying an aftermath dump should use that source code instead of trying to look it up from the filesystem.

This would be greatly appreciated as not having debug information for aftermath crash dumps makes it much more difficult to debug. Thanks!

Update:
I actually made a silly mistake and these crashes occur in glslang compiled shaders!
For slangc compiled shaders this all works.

Gabe and i use the same shader compiler toolchain and suspect that the glsl path might break the nsight symbol search due to costum preprocessor code for #pragma once for glsl. Slang natively supports #pragma, so slangc probably generates more “correct” source embeddings within the spirv.

Hi patrick.ahrens.32369 and gabe1,

Could you guys share some reproduceable sample of your issue or request? That will make sure we are on the same page.

Thanks
An