dxvk: Squad freezes Nvidia driver: "NVRM: Xid 31 (...) ACCESS_TYPE_VIRT_WRITE"
Squad causes random but frequent freezes where the Nvidia kernel driver spews one specific error message, and Squad’s (i.e., UE4’s) GPU thread becomes unresponsive until the game’s own watchdog kills the process 2-3 minutes later. During this time the WM is practically unusable, suffering from a lag of 1+ minutes per keystroke.
The driver error is exactly the same line every time, except of course for the pid
:
NVRM: Xid (PCI:0000:2d:00): 31, pid=970, Ch 00000023, intr 00000000. MMU Fault: ENGINE GRAPHICS GPCCLIENT_RAST faulted @ 0x0_00000000. Fault is of type FAULT_PDE ACCESS_TYPE_VIRT_WRITE
If I set the game’s internal frame limit slider to 60-ish to match my monitor’s refresh rate the freezes become rare enough that I may be able to play a few hours without one. But if I set the limit to the max (which is 240 i.e. practically unlimited in my case) it’s guaranteed to freeze within 10 minutes or so.
I’ve found at least two situations where the freeze is significantly more likely to occur than otherwise. One is when the game is changing maps, seems to be the loading of a new map that often causes it. The other situation is more interesting because it’s brought on by user action: simply clicking on the role loadout tab in the deployment menu is practically guaranteed to freeze the game then and there.
The freeze will occasionally happen with no obvious trigger, too.
I’ll try to upload logs here as soon as I have a moment.
Software information
- Squad a-15.4.5.19500-4.21.2-SHIPPING.
- Steam Proton. Tested with all recent upstream releases as well as own builds with updated Wine versions.
- Debian unstable + i3, no compositor in use.
- Linux 5.2.9-ck1 with fsync patches.
System information
- GPU: Nvidia RTX 2080
- Driver: 418.52.20. Tested several recent Vulkan beta drivers in the 418.52.x series.
- Wine version: Tested with Protonified builds of 4.2, 4.11, 4.12.1, and 4.13.
- DXVK version: Everything from at least v1.3 up to master exhibit the behavior. Older versions not tested.
Apitrace file(s)
- N/A
Log files
- Will upload these fairly soon.
About this issue
- Original URL
- State: closed
- Created 5 years ago
- Comments: 26 (11 by maintainers)
There is a bug in our Vulkan driver where, when video memory is full, certain internal allocations can fail in video memory without a fallback in system memory, which at least triggers one kind of error and could conceivably be the cause of the error seen by @imaami. Fix is in progress, I will update this bug when a release carrying the fix is available.
I see the fix was noticed before I could announce it here. Please test this new driver release to confirm it fixes the problem.
I just had the most awesome Squad match in a long time. Ended 1-0. No freezes or crashes during these past 2-3 hours with the new driver.
This isn’t confirmation yet because the bug has been probabilistic from the beginning. I’d say if I don’t get freezes in the next 3 days from now it’s likely that it’s fixed.
Proof that I am, in fact, not as lazy at it seems. 😉 Just bad at updating tickets.
@SveSop, video memory being full is not an abnormal situation. This shouldn’t be producing crashes. Video memory being is however definitely a factor in reproducing this readily.
imaami captured an Apitrace which with I have managed to reproduced at least one bug consistently. This is not the bug being reported, but I have reason to believe they are related.
(Sorry for posting to a closed issue that’s most likely unrelated to DXVK but 🤷)
Two other people have recently reported crashes with a Xid 31 error in Squad (https://github.com/ValveSoftware/Proton/issues/938#issuecomment-703769378, https://github.com/ValveSoftware/Proton/issues/938#issuecomment-706672103). That would make yours the third one.
@ahuillet might want to keep an eye out for a regression in 455.y memory management code. Very similar symptoms, it seems.
Confirming on 455.28 with multiple games (both dx9 and dx11). This may be somehow related to gnome-shell - unchecking “Allow the WM to control the windows” in winecfg seems to remove the hang / Xid 31 for me.
Thank you imaami for providing the apitrace that let us diagnose the problem!