Open JIStream opened 1 year ago
Got the following in my kernel log when it froze in the menu:
[ 730.401301] NVRM: GPU at PCI:0000:08:00: GPU-a8fb3a3a-9dd5-b430-1b78-cb1f1ecd6079
[ 730.401308] NVRM: Xid (PCI:0000:08:00): 13, pid='<unknown>', name=<unknown>, Graphics Exception on GPC 0: SAVE_RESTORE_ADDR_OOB
[ 730.401323] NVRM: Xid (PCI:0000:08:00): 13, pid='<unknown>', name=<unknown>, Graphics Exception: ESR 0x500900=0x80000001
[ 730.401341] NVRM: Xid (PCI:0000:08:00): 13, pid='<unknown>', name=<unknown>, Graphics Exception on GPC 1: SAVE_RESTORE_ADDR_OOB
[ 730.401357] NVRM: Xid (PCI:0000:08:00): 13, pid='<unknown>', name=<unknown>, Graphics Exception: ESR 0x508900=0x80000001
[ 730.401377] NVRM: Xid (PCI:0000:08:00): 13, pid='<unknown>', name=<unknown>, Graphics Exception on GPC 2: SAVE_RESTORE_ADDR_OOB
[ 730.401394] NVRM: Xid (PCI:0000:08:00): 13, pid='<unknown>', name=<unknown>, Graphics Exception: ESR 0x510900=0x80000001
[ 730.401628] NVRM: Xid (PCI:0000:08:00): 13, pid=3200, name=DXMD.exe, Graphics Exception: ChID 00f4, Class 0000c597, Offset 00000000, Data 00000000
I didn't get any random hangs while playing, so I'm not sure if that's a separate issue.
Adding VKD3D_CONFIG=force_initial_transition
to the launch options solved the menu problem for me, at least.
It would be great if you could try the VKD3D_CONFIG=force_initial_transition
option and report back if it fixes your freeze issues.
It seems it helped with the menu freeze, still hanged after around ~30-40 minutes of gameplay though. I'll attach the log file from latest Proton-GE with this freeze. Thanks for your help.
Found one more area where the game crashes somewhat consistently. Shooting Range inside TF29 headquarters, had 3 consecutive crashes there during the target practice. Also, not sure if it's just a placebo but disabling steam overlay made the game less prone to freeze, it only froze 2 times after 3-4 hours of gameplay whereas before it usually did after 30 minutes to 1 hour. (I saw something about steam overlay crashing in system log, not sure if it's what triggers the problem or it just crashes after the game hanged). Attaching proton log with those 3 crashes from shooting range.
FWIW the D3D12 renderer of this game is known to be extremely buggy to the point where it's half-broken even on Windows (lots of broken things going on like out-of-bounds index buffer access etc which can lead to random geometry being rendered), not sure if it's worth spending a lot of time on this.
I'd strongly recommend just using D3D11 for this game.
Well, other from the crashes in the shooting range it mostly plays alright, haven't noticed anything weird. DX11 stutters a lot. I'll stick to DX12 and switch to DX11 for problematic areas like shooting range if more of those exist.
If you use DXVK 2.0 or newer and a driver with GPL support this game stutters much less in dx11 mode than dx12 and also has better performance, just like on windows.
Latest Nvidia driver should support it but DX11 still stutters for me. Also I didn't notice it precompiling anything in the main menu (cpu usage was super low, so I assume no compilation). I'll try one more time.
Edit: Tried it, it's not stuttering non-stop (I would consider this playable) but definitely still does when entering new parts of the map, opening new computers or menus, DX12 has none of this, in fact I think it has no stutters at all.
Also, went to shooting range, and it's not DX12 at fault here, it crashes with DX11 too.
Edit2: Googled some more and shooting range is just bugged, it's a known glitch in the game, has nothing to do with anything at all.
Not sure if related, but I encountered another weird issue with DX12 renderer for it. Just trying GOG version for the first time and noticed that after re-running the game, it just hangs unless I clean Mesa shader cache.
vkd3d-proton shows such errors:
3112.974:0020:02a0:fixme:vkd3d-proton:vkd3d_dxbc_compiler_check_index_range: Unhandled index range write mask 0x1 (0xf).
3112.974:0020:02a0:fixme:vkd3d-proton:vkd3d_dxbc_compiler_emit_dcl_index_range: Ignoring dcl_index_range 0x2 3.
3112.974:0020:0298:fixme:vkd3d-proton:vkd3d_dxbc_compiler_check_index_range: Unhandled index range write mask 0x1 (0xf).
3112.974:0020:0298:fixme:vkd3d-proton:vkd3d_dxbc_compiler_emit_dcl_index_range: Ignoring dcl_index_range 0x2 3.
3112.974:0020:027c:fixme:vkd3d-proton:vkd3d_dxbc_compiler_check_index_range: Unhandled index range write mask 0x1 (0xf).
3112.974:0020:027c:fixme:vkd3d-proton:vkd3d_dxbc_compiler_emit_dcl_index_range: Ignoring dcl_index_range 0x2 3.
3112.974:0020:0248:fixme:vkd3d-proton:vkd3d_dxbc_compiler_check_index_range: Unhandled index range write mask 0x1 (0xf).
3112.974:0020:0248:fixme:vkd3d-proton:vkd3d_dxbc_compiler_emit_dcl_index_range: Ignoring dcl_index_range 0x2 3.
3112.974:0020:02c0:fixme:vkd3d-proton:vkd3d_dxbc_compiler_check_index_range: Unhandled index range write mask 0x1 (0xf).
...
And dmesg shows such ones:
[ 2792.399459] amdgpu 0000:48:00.0: amdgpu: failed to get a new IB (-512)
[ 2792.399460] amdgpu 0000:48:00.0: amdgpu: failed to clear page tables on GEM object close (-512)
I managed to work around it by simply disabling shader cache for the game with MESA_SHADER_CACHE_DISABLE=true
.
Thanks for the DX11 suggestion - I switched the game to that and now it works without disabling shader cache fine.
The game freezes seemingly randomly during gameplay, sound keeps going. Also semi-consistently freezes when going to tab menu into documents section (emails, notes and other stuff is in there). DX11 version doesn't suffer from these issues.
Software information
Tried on Proton 7.0-6, Experimental, GE-53 and 34, all produce same results. I suspect that these lines from log are important (the game froze on opening documents section):
System information
Log files
steam-337000.log