radeonsi: Euro Truck Simulator 2 hangs the GPU and graphics get corrupted
Description
After about 20 minutes of driving around the GPU freezes and when it recovers graphics are very corrupted.
Screenshots/video files
Log files (for system lockups / game freezes / crashes)
The kernel logs this message:
amdgpu 0000:0c:00.0: amdgpu: [gfxhub0] no-retry page fault (src_id:0 ring:24 vmid:2 pasid:32774, for process eurotrucks2 pid 43870 thread eurotrucks:cs0 pid 43901)
amdgpu 0000:0c:00.0: amdgpu: in page starting at address 0x00008001e4400000 from IH client 0x1b (UTCL2)
amdgpu 0000:0c:00.0: amdgpu: VM_L2_PROTECTION_FAULT_STATUS:0x00201030
amdgpu 0000:0c:00.0: amdgpu: Faulty UTCL2 client ID: TCP (0x8)
amdgpu 0000:0c:00.0: amdgpu: MORE_FAULTS: 0x0
amdgpu 0000:0c:00.0: amdgpu: WALKER_ERROR: 0x0
amdgpu 0000:0c:00.0: amdgpu: PERMISSION_FAULTS: 0x3
amdgpu 0000:0c:00.0: amdgpu: MAPPING_ERROR: 0x0
amdgpu 0000:0c:00.0: amdgpu: RW: 0x0
[drm:amdgpu_job_timedout [amdgpu]] *ERROR* ring gfx_low timeout, but soft recovered
Steps to reproduce
As far as I know there is no consistent way to trigger the bug. It just happens on it's own after driving around for about 20 minutes. It should be noted that I do not use the speed limiter and drive at maximum speed, so if the bug is somehow related to distance driven it might be longer than 20 minutes.
System information
- OS: Arch Linux
- GPU: AMD RX Vega 56 (Advanced Micro Devices, Inc. [AMD/ATI] Vega 10 XL/XT [Radeon RX Vega 56/64])
- Kernel version: 6.4.6-273-tkg-bore
- Mesa version: 4.6 (Compatibility Profile) Mesa 23.1.5
- Desktop environment: XFCE4
- Xserver version: X.Org X Server 1.21.1.8
Regression
Last version I have tested that is known to work is 23.0.3. Issue started at around 23.1.0, though I have not taken the time to verify the exact 23.1 version. Definitely present in 23.1.5.
Additional info
Using a build from the main branch freezing appears to be more frequent and the resulting corruption less severe, however I cannot confirm that this is due to an actual change in mesa or because I am in a different area of the game.