Hi there!
The PSO1 log has very little info, including what GPU and driver version were in use and no breadcrumbs or aftermath dump - however it is possible both are the result of a stale or corrupt PSO cache. The PSO0 log which crashed with DeviceRemovedNoGpuFault on a 5090 with driver version 591.86, might a driver bug - possibly the shader heap overflow issue that is fixed in 595.x and had similar symptoms e.g. a crash with very little information. It looks like that one output a .nv-gpudmp file which we can look at If you attach it. I recommend requesting the user update to the latest driver. You can also set your suggested driver version to a 595.xx driver in your <project>/config/DefaultHardware.ini
[GPU_NVIDIA Windows]
SuggestedDriverVersion="595.36"
If you have reports of these GPU crashes on newer driver versions then that would point to this being more likely a PSO cache issue.
Is there any way we could rule out PSOs?
It’s possible for a corrupted PSO cache to cause crashes, but we’ve never had a live repro. The way we’ve reproduced this artificially is by writing random bytes to mapped memory, which can result in a GPU crash rarely, and then on subsequent loads of the game it will crash. The crash will go away when the PSO cache is cleared. So, in theory this could occur if you had a memory stomp that poisoned the PSO cache. The resulting GPU crash from this has no DRED, no Aftermath, no active shaders or resources, similar to the PSO0.log
If you have a machine it repros on, you can ask the user to manually move their PSO cache elsewhere so it gets regenerated, and if that fixes the issue, you can look at the PSO cache to try and identify from the hash and the contents of a good and bad cache if there’s a difference and possibly whether the PSO is corrupt or stale - we’ve never had a live repro for this so it’s theoretical. You may also be able to look for other crash reports from that user and see if the oldest reported crash looks like a memory stomp.
You can also make it easier for users to clear their PSO cache by exposing the -clearPSODriverCache functionality.
We were also wondering if PSO compile putting pressure on the game could cause a hang as well?
The only known hangs in this area have come from the driver trying to optimize shaders at some time after PSO compilation and when you have a ton of PSOs that optimization could cause a shader heap overflow which has been fixed in the 595 branch.
Are you not seeing breadcrumbs in your logs with crash reports? If not, do you have r.GPUCrashDebugging.Breadcrumbs enabled in your builds? You may also want to enable r.D3D12.LightweightDRED which will incur a slight overhead but may be worth it while you are hunting down these issues with a limited audience.
[Attachment Removed]