[Linux/Proton, AMD RX 7800 XT] Render thread freeze after GPU page fault
[Linux/Proton, AMD RX 7800 XT] Render thread freeze after GPU page fault (TCP client, PERMISSION_FAULTS 0x3) -> RenderException "FlushAllQueuesAndWaitCpu failed" -
same signature as the Windows AMD reports (DRED "Pagefault")
SUMMARY
Space Engineers 2 2.4.0.95 crashes reproducibly on an AMD RX 7800 XT under Linux (Steam/Proton). The game's own GPU virtual memory gets a page fault from the texture
cache (TCP), the GFX ring times out, the driver resets the GPU and the game throws "FlushAllQueuesAndWaitCpu failed to synchronize CPU with the GPU command queue".
This matches the AMD crash reports on Windows (support topic "AMD driver crash", DRED DeviceState: Pagefault; RX 9070 XT, RX 6700 XT on Linux, older cards too), so it
does not look Linux- or Mesa-specific. I know Linux is not officially supported; I am reporting because the fault signature is identical and I collected a lot of
data that may help.
ENVIRONMENT
- Game: 2.4.0.95, Steam build 24993846 (public branch). Survival start scenario and Creative in space both crash.
- GPU: AMD Radeon RX 7800 XT (Navi 32, 16 GB). The PC also has a Radeon Instinct MI50 and the Ryzen iGPU; both hidden from the game with
VKD3D_FILTER_DEVICE_NAME/DXVK_FILTER_DEVICE_NAME (no change; also tried with the MI50 unbound from amdgpu).
- CPU/RAM: Ryzen 5 7600X, 32 GB DDR5-5200, 32 GB swap. BIOS 4.43 (also tested 3.16).
- OS: KDE neon (Ubuntu 24.04 base), Wayland session, Xwayland.
- Kernel: 7.0.0-31 (also 6.17.0-40). Mesa/RADV 25.2.8. linux-firmware: GC/MES/PSP/SMU/SDMA files are identical across the last three package versions (compared by
hash), so firmware did not change.
- Proton: Hotfix 20260828 (vkd3d-proton 3.1.0), Experimental 11.0-20260910b, 10.0-4b, 11.0-2c. Same result with all.
- Settings: crashes on High and on Medium presets, FSR on/off, VSync off, raytracing High/Medium/Disabled.
SYMPTOMS
Two modes, same signature:
1. Early: 12-50 seconds after the world finished loading (first frames of the real 3D scene). About 85% of attempts on the afternoon of 2026-09-19.
2. Late: after 3.5, 8, 24, 37, 48 and once 62 minutes of normal play.
The GPU hangs (100% load, constant power), then the kernel resets it and all GPU apps on the desktop lose their context.
KERNEL LOG (2026-09-19 21:22:14, one of dozens of identical events)
amdgpu 0000:03:00.0: [gfxhub] page fault (src_id:0 ring:24 vmid:7 pasid:1149)
amdgpu 0000:03:00.0: Process Main Thread pid 33441 thread vkd3d_queue pid 33603
amdgpu 0000:03:00.0: in page starting at address 0x00008004b39ff000 from client 10
amdgpu 0000:03:00.0: GCVM_L2_PROTECTION_FAULT_STATUS:0x00701030
amdgpu 0000:03:00.0: Faulty UTCL2 client ID: TCP (0x8)
amdgpu 0000:03:00.0: PERMISSION_FAULTS: 0x3
amdgpu 0000:03:00.0: MAPPING_ERROR: 0x0
amdgpu 0000:03:00.0: ring gfx_0.0.0 timeout, signaled seq=2334835, emitted seq=2334837
amdgpu 0000:03:00.0: GPU reset begin!. Source: 1
amdgpu 0000:03:00.0: MES failed to respond to msg=REMOVE_QUEUE
amdgpu 0000:03:00.0: failed to unmap legacy queue
amdgpu 0000:03:00.0: VRAM is lost due to GPU reset!
amdgpu 0000:03:00.0: GPU reset(7) succeeded!
The faulting addresses are always page aligned and inside 0x0000800100000000 - 0x0000800600000000 (examples: 0x00008003721ff000, 0x00008004945ff000,
0x00008004b39ff000), always client TCP, always PERMISSION_FAULTS 0x3. The MES message comes after the fault, it is the consequence.
GAME LOG (2.4.0.95, 2026-09-19; the kernel logged the page fault at 10:09:27, one second after the cave area event; the game only gave up 35 s later)
10:09:26.079 In-Process Server Thread -> {Mission} {Area} Entity entered area: Cave, entity: Character 76:1
10:09:32.626 VRAGE Watchdog Worker -> [Watchdog]: The application froze with freeze type RenderThreadFreeze (freeze #1). Capturing dump.
10:10:01.457 Render thread -> VideoMemoryInfo report: Budget: 16,041,320,448 CurrentUsage: 14,077,116,416
10:10:01.458 Render thread -> Exception in render!
Keen.VRage.Render.Data.RenderException: FlushAllQueuesAndWaitCpu failed to synchronize CPU with the GPU command queue 'Present'
at Keen.VRage.Render12.Core.Systems.FrameDispatcher.FlushAllQueuesAndWaitCpu(UInt64 globalFenceValue)
at Keen.VRage.Render12.EngineComponents.Render12EngineComponent.IRender_Present(PresentStats& stats)
at Keen.VRage.Render12.EngineComponents.Render12EngineComponent.RenderFrame()
10:10:01.459 Render thread -> [Crash Handler]: A fatal exception was caught by the crash handler.
Shortly before the exception the log also shows (once the GPU is already hung):
Render thread -> Assertion Failure: Time needs to be non-negative.; 'time >= 0' evaluated to false (RenderGPUStat.cs:50)
WHAT I MEASURED
- Not thermal: junction temperature below 90 C at the time of faults.
- Not VRAM exhaustion: faults occur at 5.8 GB (during load) as well as at 13.5-14.7 GB; the engine keeps its streaming pool near the budget anyway.
- Not a power/clock state issue: I recorded clocks, power and load at 10 Hz. With the clock pinned (profile_peak, 1363 samples, 2165-2225 MHz, zero dips, 100% load)
the fault still happened after 2 min 11 s. With normal DPM the clock only drops in the sample right at the fault (consequence of the stall). The same shape is visible
in the RX 9070 XT overlay log from the support thread: full clock and load until the fault, then idle.
- Not GFXOFF, not the second/third GPU, not Steam overlay or Fossilize layers.
WHAT DID NOT CHANGE THE OUTCOME
Kernel 6.17 -> 7.0 (crash interval got longer, from ~30 s to ~25-50 min, but the fault remains); all four Proton versions; FSR off; VSync off; raytracing off; Medium
preset; VKD3D_CONFIG=no_upload_hvv; VKD3D_CONFIG=disable_uav_compression; clearing Steam shader cache and Mesa cache; swap 16 -> 32 GB; GFXOFF disabled via
ppfeaturemask; fixed GPU power level; hiding the MI50/iGPU; BIOS 3.16 -> 4.43; Steam overlay and Fossilize Vulkan layers disabled; Mesa 26.2 (PPA) does not initialize
RADV on this kernel, so not testable.
OLDER BUILDS
- 2.2.0.2116 (beta branch se2version_2_2): the process starts, logs "LOADING_BEGIN|Render_Init" and then reserves about 280 GB of address space and fills RAM (19 GB
RSS after 156 s and growing, killed manually). Nothing more is logged.
- 2.4.0.95 with Proton 9.0 (beta) does the same at startup (over 300 GB reserved, RAM filling).
So something in the renderer initialization can run away depending on the compatibility layer.
QUESTIONS
1. Is the engine known to access a texture/descriptor of a resource that was just freed or evicted (streaming, LCD screens, thruster effects)? The fault pattern (TCP,
permission fault, page aligned unmapped VA) looks like use-after-free of a resource on the GPU timeline.
2. Is there a config or console option to disable planet texture streaming or sparse residency (for example the UsePlanetTextureStreaming / UseOctreeRegionStreaming
flags in the voxel core configuration) so I can test if that removes the crash?
3. Is there a debug option that logs which resource or descriptor a shader touched, like DRED page fault information on Windows?
I am happy to test any debug build or option and can provide the full logs (Temp/Logs), the crash dumps and a 10 Hz GPU telemetry recording of several crashes.
I like this feedback
[Linux / Proton / AMD] Workaround that made Space Engineers 2 playable again on my RX 7800 XT: newer Mesa (26.1.x) instead of Ubuntu's 25.2.8
Short version
On Linux with an AMD GPU I had the same crash as in the Windows AMD threads (GPU page fault, render thread freeze, "FlushAllQueuesAndWaitCpu failed to synchronize CPU
with the GPU command queue"). After updating the Vulkan driver (Mesa/RADV) from 25.2.8 to 26.1.8 the crashes stopped on my system: no GPU fault at all in 3.5+ hours,
including play sessions of 53 and 62+ minutes and several reloads of the save that used to crash within seconds. This is one system and a few hours, not a proof, but
I found no other Linux solution, so I am sharing it.
My setup
- Game 2.4.0.95, Steam + Proton Experimental (11.0-20260910b)
- AMD Radeon RX 7800 XT (Navi 32), Ryzen 5 7600X, 32 GB RAM
- KDE neon (Ubuntu 24.04 base), kernel 7.0.0-31, Wayland
- Before: Mesa 25.2.8 (Ubuntu's default). After: Mesa 26.1.8 (kisak-mesa "stable" PPA, called "turtle")
What the crash looked like (so you can compare with your own log; kernel log via "journalctl -k" or "dmesg")
amdgpu 0000:03:00.0: [gfxhub] page fault (src_id:0 ring:24 vmid:7 pasid:...)
amdgpu 0000:03:00.0: Process Main Thread ... thread vkd3d_queue ...
amdgpu 0000:03:00.0: Faulty UTCL2 client ID: TCP (0x8)
amdgpu 0000:03:00.0: PERMISSION_FAULTS: 0x3
amdgpu 0000:03:00.0: ring gfx_0.0.0 timeout ...
amdgpu 0000:03:00.0: MES failed to respond to msg=REMOVE_QUEUE
amdgpu 0000:03:00.0: GPU reset(...) succeeded!
In the game log: "RenderThreadFreeze" from the watchdog, then RenderException "FlushAllQueuesAndWaitCpu failed to synchronize CPU with the GPU command queue".
On my old setup about 85% of world loads crashed within 15-50 seconds of the world being ready, the rest after 3-60 minutes.
What did NOT help (all tested, same crash): kernel 6.17 vs 7.0, Proton Hotfix/Experimental/10/11, lower graphics presets, FSR/VSync/raytracing off,
VKD3D_CONFIG=no_upload_hvv, clearing shader caches, more swap, disabling GFXOFF, forcing GPU power level / fixed clocks (with 10 Hz telemetry: clocks stay flat, fault
still happens), BIOS update, hiding other GPUs. Hints that pointed to the driver: the same save runs fine on a Steam Deck (Valve's RADV 26.0-devel) with the same
game build and Proton.
How I updated Mesa (Ubuntu 24.04 based, x86_64). Do this at your own risk, it changes the graphics driver for the whole system.
1) sudo add-apt-repository ppa:kisak/turtle
(Do NOT use the "kisak-mesa" fresh PPA: it ships a newer libdrm and RADV did not initialize on my kernel.)
2) sudo apt update
3) Update the Mesa packages from that PPA. In Mesa 26 the VA-API/VDPAU drivers moved into libgallium, so the old mesa-va-drivers / mesa-vdpau-drivers packages have to
be removed in the same step, otherwise apt refuses. What I ran:
sudo apt install libegl1-mesa-dev libegl-mesa0 libgbm1 libgbm-dev libgl1-mesa-dri libglx-mesa0 libllvm20 mesa-common-dev mesa-libgallium mesa-vulkan-drivers
mesa-va-drivers- mesa-vdpau-drivers-
(read the apt summary before you confirm)
4) Check: vulkaninfo --summary | grep -E "deviceName|driverInfo"
Your GPU has to show up with "Mesa 26.1.x". If the list only shows llvmpipe, undo it right away.
5) Restart Steam (better: reboot).
Undo: sudo ppa-purge -y ppa:kisak/turtle && sudo apt install mesa-va-drivers mesa-vdpau-drivers vdpau-driver-all
Launch options I use (Steam > SE2 > Properties > Launch Options)
VKD3D_CONFIG=disable_uav_compression DISABLE_VK_LAYER_VALVE_steam_overlay_1=1 DISABLE_VK_LAYER_VALVE_steam_fossilize_1=1 VKD3D_FILTER_DEVICE_NAME="7800"
DXVK_FILTER_DEVICE_NAME="7800" %command%
(Change "7800" to a part of your GPU name. I do not know which of these variables matters; the driver update is what removed the GPU faults for me. Careful: Steam
resets the launch options when you switch the beta branch. With empty options the game ran into a runaway RAM allocation at startup for me right after such a switch.
Kill it and re-enter the options.)
Remaining issue (game side, not GPU)
After roughly an hour the game starts to stutter: the main thread gets hitches of 60-90 ms while render thread and GPU stay normal, process memory grows from 7.3 to
9.4 GB. Restarting the game (loads in ~15 s) fixes it.
Distros that already ship Mesa 26.x (Arch, Fedora and similar) may not have this problem at all. If you try this and it works or does not work for you, please write
which GPU, Mesa version and kernel you have, that would help to see whether it is really the driver.
[Linux / Proton / AMD] Workaround that made Space Engineers 2 playable again on my RX 7800 XT: newer Mesa (26.1.x) instead of Ubuntu's 25.2.8
Short version
On Linux with an AMD GPU I had the same crash as in the Windows AMD threads (GPU page fault, render thread freeze, "FlushAllQueuesAndWaitCpu failed to synchronize CPU
with the GPU command queue"). After updating the Vulkan driver (Mesa/RADV) from 25.2.8 to 26.1.8 the crashes stopped on my system: no GPU fault at all in 3.5+ hours,
including play sessions of 53 and 62+ minutes and several reloads of the save that used to crash within seconds. This is one system and a few hours, not a proof, but
I found no other Linux solution, so I am sharing it.
My setup
- Game 2.4.0.95, Steam + Proton Experimental (11.0-20260910b)
- AMD Radeon RX 7800 XT (Navi 32), Ryzen 5 7600X, 32 GB RAM
- KDE neon (Ubuntu 24.04 base), kernel 7.0.0-31, Wayland
- Before: Mesa 25.2.8 (Ubuntu's default). After: Mesa 26.1.8 (kisak-mesa "stable" PPA, called "turtle")
What the crash looked like (so you can compare with your own log; kernel log via "journalctl -k" or "dmesg")
amdgpu 0000:03:00.0: [gfxhub] page fault (src_id:0 ring:24 vmid:7 pasid:...)
amdgpu 0000:03:00.0: Process Main Thread ... thread vkd3d_queue ...
amdgpu 0000:03:00.0: Faulty UTCL2 client ID: TCP (0x8)
amdgpu 0000:03:00.0: PERMISSION_FAULTS: 0x3
amdgpu 0000:03:00.0: ring gfx_0.0.0 timeout ...
amdgpu 0000:03:00.0: MES failed to respond to msg=REMOVE_QUEUE
amdgpu 0000:03:00.0: GPU reset(...) succeeded!
In the game log: "RenderThreadFreeze" from the watchdog, then RenderException "FlushAllQueuesAndWaitCpu failed to synchronize CPU with the GPU command queue".
On my old setup about 85% of world loads crashed within 15-50 seconds of the world being ready, the rest after 3-60 minutes.
What did NOT help (all tested, same crash): kernel 6.17 vs 7.0, Proton Hotfix/Experimental/10/11, lower graphics presets, FSR/VSync/raytracing off,
VKD3D_CONFIG=no_upload_hvv, clearing shader caches, more swap, disabling GFXOFF, forcing GPU power level / fixed clocks (with 10 Hz telemetry: clocks stay flat, fault
still happens), BIOS update, hiding other GPUs. Hints that pointed to the driver: the same save runs fine on a Steam Deck (Valve's RADV 26.0-devel) with the same
game build and Proton.
How I updated Mesa (Ubuntu 24.04 based, x86_64). Do this at your own risk, it changes the graphics driver for the whole system.
1) sudo add-apt-repository ppa:kisak/turtle
(Do NOT use the "kisak-mesa" fresh PPA: it ships a newer libdrm and RADV did not initialize on my kernel.)
2) sudo apt update
3) Update the Mesa packages from that PPA. In Mesa 26 the VA-API/VDPAU drivers moved into libgallium, so the old mesa-va-drivers / mesa-vdpau-drivers packages have to
be removed in the same step, otherwise apt refuses. What I ran:
sudo apt install libegl1-mesa-dev libegl-mesa0 libgbm1 libgbm-dev libgl1-mesa-dri libglx-mesa0 libllvm20 mesa-common-dev mesa-libgallium mesa-vulkan-drivers
mesa-va-drivers- mesa-vdpau-drivers-
(read the apt summary before you confirm)
4) Check: vulkaninfo --summary | grep -E "deviceName|driverInfo"
Your GPU has to show up with "Mesa 26.1.x". If the list only shows llvmpipe, undo it right away.
5) Restart Steam (better: reboot).
Undo: sudo ppa-purge -y ppa:kisak/turtle && sudo apt install mesa-va-drivers mesa-vdpau-drivers vdpau-driver-all
Launch options I use (Steam > SE2 > Properties > Launch Options)
VKD3D_CONFIG=disable_uav_compression DISABLE_VK_LAYER_VALVE_steam_overlay_1=1 DISABLE_VK_LAYER_VALVE_steam_fossilize_1=1 VKD3D_FILTER_DEVICE_NAME="7800"
DXVK_FILTER_DEVICE_NAME="7800" %command%
(Change "7800" to a part of your GPU name. I do not know which of these variables matters; the driver update is what removed the GPU faults for me. Careful: Steam
resets the launch options when you switch the beta branch. With empty options the game ran into a runaway RAM allocation at startup for me right after such a switch.
Kill it and re-enter the options.)
Remaining issue (game side, not GPU)
After roughly an hour the game starts to stutter: the main thread gets hitches of 60-90 ms while render thread and GPU stay normal, process memory grows from 7.3 to
9.4 GB. Restarting the game (loads in ~15 s) fixes it.
Distros that already ship Mesa 26.x (Arch, Fedora and similar) may not have this problem at all. If you try this and it works or does not work for you, please write
which GPU, Mesa version and kernel you have, that would help to see whether it is really the driver.
Replies have been locked on this page!