[SOLVED] DXGI_ERROR_DEVICE_HUNG in Proton & Steam Games on Linux
While gaming on Linux via Steam Proton (playing Cyberpunk 2077, Elden Ring, or Apex Legends), the screen suddenly freezes followed by an Unreal Engine / DirectX dialogue reporting: Fatal error: The GPU device has been suspended or hung: DXGI_ERROR_DEVICE_HUNG (0x887A0006). This crash occurs when the Linux graphics stack fails to receive a timely response from the GPU execution ring.
Quick Diagnostics
Step-by-Step Solution
Step 1: Stabilize VKD3D-Proton Translation Pipeline
VKD3D bridges DirectX 12 calls directly into Vulkan. Stabilize memory transfers by appending this launch flag under Steam Game -> Properties -> General -> Launch Options:
VKD3D_CONFIG=no_upload_hvv %command%
Step 2: Configure Proton Concurrency Synchronization
Resolve worker thread lockups by steering synchronization to Linux kernel futexes:
PROTON_NO_ESYNC=1 PROTON_USE_FSYNC=1 %command%
Step 3: Mitigate VRAM Overflow and Clock Instabilities
The DEVICE_HUNG exception frequently erupts when games surpass 98% of dedicated video memory:
-
1
Step 1
Drop Texture Quality from Ultra down to High to prevent swapping onto system RAM. -
2
Step 2
Disable Ray Tracing features on cards with 8 GB or less VRAM. -
3
Step 3
If running custom clock profiles (via CoreCtrl or GWE), revert to factory power curves.
Frequently Asked Questions
What does error code 0x887A0006 signify under the hood?
It is the DirectX hexadecimal definition for DXGI_ERROR_DEVICE_HUNG, signaling that the GPU hardware failed to respond to the driver commands within the expected watchdog window.
How does this issue appear in system kernel logs?
On AMD Radeon it prints amdgpu: ring gfx timeout inside dmesg, whereas on NVIDIA it logs kernel Xid error events.
Prevention Advice
Recommended security practices:
- Keep your graphics stack on modern driver releases (NVIDIA 555+ with Explicit Sync or Mesa 24+).
- Test problematic titles against community-curated Proton GE builds via ProtonUp-Qt.