We are having problem with our engine using Aftermath SDK. When crash dump is generated due to page fault in one of the compute shaders there is no shader hash available:
The crash here happened inside the compute shader. Interestingly there was also a vertex shader running at the same time for which the shader hash is present. Is there anything we can do to obtain the shader hash so we could investigate the GPU crash any further?
Thank you for using Aftermath SDK and providing your feedback. We are sorry for any inconvenience you have encountered. It’s weird that Shader hash show N/A, could you share your nv-gpudmp file to us for investigation?
Also I have a follow-up question - since there is a shader name “compute_02” and shader size “20992” in the dump json file is there any chance to match those to shaders during PSO creation (either by size or creation order)? I’ve done some experiments with nsight-aftermath-samples and noticed that the shader size is not equal to D3D12_SHADER_BYTECODE.BytecodeLength (I suppose it’s because the size of D3D12_SHADER_BYTECODE is DXIL size while the size provided from Aftermath is size of the final ISA?).
I shared my email to you through the personal message, but didn’t receive the nv-gpudmp files.
since there is a shader name “compute_02” and shader size “20992” in the dump json file is there any chance to match those to shaders during PSO creation (either by size or creation order)?
Maybe you can try to use GFSDK_Aftermath_GetShaderHash (DX12), GFSDK_Aftermath_GetShaderHashSpirv (Vulkan)?
I sent it through the provided email 14 days ago, there might by some problem on the way so I sent it again today.
GFSDK_Aftermath_GetShaderHash() would work in case the shader hash would be provided by Aftermath dump, but this is not the case. I was wondering if there is maybe some similar API to obtain driver visible shader size so I could match it with the size from Aftermath dump. I tried to find it in nSight Graphics, but everytime I switch any compute shader view from DXIL to SASS the nSight just crashes (VS or PS works fine and SASS is visible though).
I sent it through the provided email 14 days ago, there might by some problem on the way so I sent it again today.
I can receive the email, and an internal case has been created to track the shader hash missing.
GFSDK_Aftermath_GetShaderHash() would work in case the shader hash would be provided by Aftermath dump, but this is not the case. I was wondering if there is maybe some similar API to obtain driver visible shader size so I could match it with the size from Aftermath dump.
I am sorry but AFAIK, there is no such API.
I tried to find it in nSight Graphics, but everytime I switch any compute shader view from DXIL to SASS the nSight just crashes (VS or PS works fine and SASS is visible though).
It might be another bug, could you start another thread and share the reproduce steps with us?
It might be another bug, could you start another thread and share the reproduce steps with us?
I’m not sure whether I would be able to easily share the reproduce steps due to complexity of the engine we use but I can provide you a minidump that nSight is willing to save on crash.
Yes, it’s a crash of nSight Graphics, our applications continue to run even after nSight crash. I’ve sent you the dump by same way as the previous one.
The N/A compute_02 shader is an internal shader within Nvidia driver, and the missing of shader hash is some kind of expected. If your project is working with Nvidia DevTech team, they could help you identify the driver issue according to the dump file.
Yes, it’s a crash of nSight Graphics, our applications continue to run even after nSight crash. I’ve sent you the dump by same way as the previous one.
I have created a new internal case for tracking the crash. We are about to release a new Nsight Graphics build in the coming days/weeks to support new GPUs, and you might be able to take some try on the new release.