ShaderDebugInfoCallback is never called in Vulkan

NVidia Driver : 522.25
Aftermath : 2022.2
Vulkan : 1.2.198

I have enabled aftermath like below:

GFSDK_Aftermath_EnableGpuCrashDump( GFSDK_Aftermath_Version_API,
    GFSDK_Aftermath_GpuCrashDumpWatchedApiFlags_Vulkan,
    GFSDK_Aftermath_GpuCrashCumpFeatureFlags_DeferDebugInfoCallbacks,
    Aftermath_GpuCrashDumpCallback,
    Aftermath_ShaderDebugInfoCallback,
    Aftermath_GpuCrashDumpDescriptionCallback,
    nullptr, &AftermathCrashDumpTracker::get() );

GpuCrashDumpCallback and GpuCrashDumpDescriptionCallback are invoked by aftermath, BUT ShaderDebugInfoCallback has never been invoked.

We have successfully used aftermath on D3D12 and understand it’s concepts. But we can’t make ShaderDebugInfoCallback to be invoked. What’s difference in there?

We also have enabled VK_NV_device_diagnostics_checkpoints. And it obviously points the crash occurs in draw-call or dispatch-call. But ShaderDebugInfoCallback is never called.

Let me know the way making it possible.

Thanks.

Hello,
Thank you for using Nsight Aftermath and sorry you ran into this issue. I will ping the engineering team and get back to you on your question or if we need any additional information.
Regards,

Hello,

Note that the shader callback is only called when there is an exception in the shader unit. Are you seeing an exception that is in the SM/shader unit and then not getting any shader callbacks?

Jeff@NV

Yes crash occurs in shader.

I have wrote a simple infinite loop code in vertex shader.

Below image is a gpu-dump’s CrashInfo.

But ShaderDebugInfoCallback has not been called.

Hello,

One thing that can cause the callback not be called is if you didn’t set up to get it. When setting the VkDeviceDiagnosticsConfigCreateInfoNV, you need to add the VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV
flag to instruct the driver to make the call. Can you confirm if you are doing that?

Jeff