protonscr

Gray Zone Warfare freeze / crash due to GPU memory allocation issues

vkd3dclosed
HansKristian-Work/vkd3d-proton#2247 · opened 2024-12-09 by DEiselt · updated 2025-01-20 · 0 comments · github
DDEiselt 2024-12-09 github

Hello, i've struggled a bit with issues while playing Gray Zone Warfare, that the game either feezes for a few seconds or outright crashes due to, what looks like, issues with memory allocation / management. The general behaviour was that after some time playing, there is a amdgpu: [gfxhub] page fault visible in the journal. Depending on display server and WM / DE, i observed a recover (second long freeze of the game while using Qtile on X11) or game crashes because it can't recover (both X11 and Wayland, tested with Cinnamon and Gnome).

I started to look into memory because of the page_fault and because the issue happens faster if i set the "Texture Resolution" to "High" or "Epic". But it still happens with lower settings, it just takes more time. I am also able to "reproduce" this by just logging into the game with mentioned settings.

The Proton versions i tested it with and was able to reproduce are:

  • Proton 9.0-3 (log below)
  • Proton Experimental ('normal' and bleeding-edge)
  • GE-Proton9-{14,17,18,20}

What i found was following message appearing in the proton log file only for the affected versions:

:warn:vkd3d-proton:vkd3d_allocate_device_memory: Memory allocation failed, falling back to system memory.

And in reference to this i also found my "solution", because this seemed to have happened with Hades II, which was to switch to Proton 8.0-5.

Whats interesting to me and why i open this report here is that the VRAM allocation warning only appears with the affected versions. But i am able to play for hours with Proton 8, which tells me that this is neither a Game issue nor a Hardware issue.

Software information

  • Gray Zone Warfare v0.2.0.5 (previous versions were affected too)
  • NixOS
  • Linux 6.12.1
  • Proton 9.0-3

System information

  • OS: NixOS 24.05.6966.190c31a89e5e (Uakari) x86_64
  • Kernel: Linux 6.12.1
  • Display (C49RG9x): 2560x1440 @ 100Hz
  • DE: Gnome 46.2
  • WM: Mutter (Wayland)
  • CPU: AMD Ryzen 9 5950X (32) @ 5,08 GHz
  • GPU: AMD Radeon RX 7900 XTX [Discrete]
  • Memory: 3,61 GiB / 31,25 GiB (12%)
  • Swap: 3,25 MiB / 34,38 GiB (0%)
  • Disk (/): 69,11 GiB / 881,48 GiB (8%) - ext4
  • Disk (/home/redacted/Storage/nvme1): 115,63 GiB / 915,82 GiB (13%) - ext4
  • Driver: Mesa 24.0.7
  • Proton versions:
    • Proton 9.0-3 (log below)
    • Proton Experimental ('normal' and bleeding-edge)
    • GE-Proton9-{14,17,18,20}
  • VKD3D-Proton version: v2.13-64-g47840a4bb614 (as per Proton releases, not sure how to check)

Log files

Please attach Proton or Wine logs as a text file:
steam-2479810-reproduced.log

Journal when this happens:

Dez 09 14:09:40 merkur kernel: amdgpu 0000:0a:00.0: amdgpu: [gfxhub] page fault (src_id:0 ring:24 vmid:5 pasid:32783)
Dez 09 14:09:40 merkur kernel: amdgpu 0000:0a:00.0: amdgpu:  in process GameThread pid 11108 thread vkd3d_queue pid 11358)
Dez 09 14:09:40 merkur kernel: amdgpu 0000:0a:00.0: amdgpu:   in page starting at address 0x00008003aa26c000 from client 10
Dez 09 14:09:40 merkur kernel: amdgpu 0000:0a:00.0: amdgpu: GCVM_L2_PROTECTION_FAULT_STATUS:0x00501030
Dez 09 14:09:40 merkur kernel: amdgpu 0000:0a:00.0: amdgpu:          Faulty UTCL2 client ID: TCP (0x8)
Dez 09 14:09:40 merkur kernel: amdgpu 0000:0a:00.0: amdgpu:          MORE_FAULTS: 0x0
Dez 09 14:09:40 merkur kernel: amdgpu 0000:0a:00.0: amdgpu:          WALKER_ERROR: 0x0
Dez 09 14:09:40 merkur kernel: amdgpu 0000:0a:00.0: amdgpu:          PERMISSION_FAULTS: 0x3
Dez 09 14:09:40 merkur kernel: amdgpu 0000:0a:00.0: amdgpu:          MAPPING_ERROR: 0x0
Dez 09 14:09:40 merkur kernel: amdgpu 0000:0a:00.0: amdgpu:          RW: 0x0
Dez 09 14:09:50 merkur kernel: amdgpu 0000:0a:00.0: amdgpu: Dumping IP State
Dez 09 14:09:50 merkur kernel: amdgpu 0000:0a:00.0: amdgpu: Dumping IP State Completed
Dez 09 14:09:50 merkur kernel: amdgpu 0000:0a:00.0: amdgpu: ring gfx_0.0.0 timeout, but soft recovered
Dez 09 14:09:50 merkur kernel: amdgpu 0000:0a:00.0: amdgpu: [gfxhub] page fault (src_id:0 ring:24 vmid:5 pasid:32783)
Dez 09 14:09:50 merkur kernel: amdgpu 0000:0a:00.0: amdgpu:  in process GameThread pid 11108 thread vkd3d_queue pid 11182)
Dez 09 14:09:50 merkur kernel: amdgpu 0000:0a:00.0: amdgpu:   in page starting at address 0x00008003aa26c000 from client 10
Dez 09 14:09:50 merkur kernel: amdgpu 0000:0a:00.0: amdgpu: GCVM_L2_PROTECTION_FAULT_STATUS:0x00501030
Dez 09 14:09:50 merkur kernel: amdgpu 0000:0a:00.0: amdgpu:          Faulty UTCL2 client ID: TCP (0x8)
Dez 09 14:09:50 merkur kernel: amdgpu 0000:0a:00.0: amdgpu:          MORE_FAULTS: 0x0
Dez 09 14:09:50 merkur kernel: amdgpu 0000:0a:00.0: amdgpu:          WALKER_ERROR: 0x0
Dez 09 14:09:50 merkur kernel: amdgpu 0000:0a:00.0: amdgpu:          PERMISSION_FAULTS: 0x3
Dez 09 14:09:50 merkur kernel: amdgpu 0000:0a:00.0: amdgpu:          MAPPING_ERROR: 0x0
Dez 09 14:09:50 merkur kernel: amdgpu 0000:0a:00.0: amdgpu:          RW: 0x0
Dez 09 14:10:00 merkur kernel: amdgpu 0000:0a:00.0: amdgpu: Dumping IP State
Dez 09 14:10:00 merkur kernel: amdgpu 0000:0a:00.0: amdgpu: Dumping IP State Completed
Dez 09 14:10:00 merkur kernel: amdgpu 0000:0a:00.0: amdgpu: ring gfx_0.0.0 timeout, but soft recovered

Proton versions