Many users with Intel UHD Graphics 620 (PCI 0x5917, Kaby Lake GT2) experience persistent GPU hangs when running DirectX 12 titles through VKD3D-Proton. The hang manifests as:
err:vkd3d-proton:vkd3d_wait_for_gpu_timeline_semaphore: Failed to wait for Vulkan timeline semaphore, vr -4
err:vkd3d-proton:dxgi_vk_swap_chain_wait_semaphore: Failed to wait for present semaphore, vr -4
Confirmed affected games:
Red Dead Redemption 1 (DX12)
Resident Evil 2 Remake (DX12)
Other DX12 games on UHD 620
Kernel logs show:
i915 0000:00:02.0: [drm] GPU HANG: ecode 9:1:85ddfffa
i915 0000:00:02.0: [drm] Resetting rcs0 for preemption time out
Root Cause
The issue is a driver-level state tracking/synchronization problem between VKD3D-Proton's command submission patterns and the i915 scheduler on Kaby Lake GT2. This does NOT occur on newer Intel hardware, DX11 titles running through DXVK, or Windows.
The Fix (Two Options Available)
Do not blindly copy the full command. Try Option A first to keep maximum performance. Only use Option B if your game still freezes.
Option A: The High-Performance Fix (Try This First)
Use this option for games like Resident Evil 2 Remake. It resolves the state-tracking bug with zero performance penalty (1:1 vanilla FPS).
Steam Launch Options:
INTEL_DEBUG=reemit %command%
Heroic / Lutris / Bottles Env Variable:
INTEL_DEBUG=reemit
Option B: The Full Safe-Mode Fix (Last Resort)
Use this option ONLY if Option A still Hangs (required for stubborn titles like Red Dead Redemption 1). It forces strict hardware synchronization. It stops all freezes entirely but introduces a 20% to 30% performance cost.
Steam Launch Options:
INTEL_DEBUG=reemit,sync,stall %command%
Heroic / Lutris / Bottles Env Variable:
INTEL_DEBUG=reemit,sync,stall
Detailed Flag Breakdown
Flag
Effect
reemit
Forces the Mesa driver to re-emit all GPU state on every draw call. Prevents state tracking bugs that cause GPU stalls.
sync
Forces full synchronization after batchbuffer submissions. Ensures the CPU waits for GPU completion.
stall
Inserts pipeline stalls where needed to guarantee operation ordering.
Important Configuration Notes
Leave VKD3D_CONFIG completely empty. Adding extra flags like virtual_heaps, single_queue, or no_upload_hvv on top of this fix breaks stability and worsens performance.
When using Option B, the performance bottleneck shifts heavily to driver overhead. Lowering your in-game resolution (e.g., from 720p to 320p) will provide almost zero FPS improvement. This is normal for this specific hardware limitation.
Confirmed Working
Tested and confirmed by multiple community members on:
This is an informational workaround thread and will be closed immediately to keep the active issue tracker clean. The proper fix belongs in the i915 kernel driver or Mesa's state tracking logic for Gen 9.5 GPUs. However, this workaround makes DX12 gaming viable on UHD 620 until an upstream patch is merged.
Problem
Many users with Intel UHD Graphics 620 (PCI 0x5917, Kaby Lake GT2) experience persistent GPU hangs when running DirectX 12 titles through VKD3D-Proton. The hang manifests as:
Confirmed affected games:
Kernel logs show:
Root Cause
The issue is a driver-level state tracking/synchronization problem between VKD3D-Proton's command submission patterns and the i915 scheduler on Kaby Lake GT2. This does NOT occur on newer Intel hardware, DX11 titles running through DXVK, or Windows.
The Fix (Two Options Available)
Do not blindly copy the full command. Try Option A first to keep maximum performance. Only use Option B if your game still freezes.
Option A: The High-Performance Fix (Try This First)
Use this option for games like Resident Evil 2 Remake. It resolves the state-tracking bug with zero performance penalty (1:1 vanilla FPS).
Option B: The Full Safe-Mode Fix (Last Resort)
Use this option ONLY if Option A still Hangs (required for stubborn titles like Red Dead Redemption 1). It forces strict hardware synchronization. It stops all freezes entirely but introduces a 20% to 30% performance cost.
Detailed Flag Breakdown
reemitsyncstallImportant Configuration Notes
VKD3D_CONFIGcompletely empty. Adding extra flags likevirtual_heaps,single_queue, orno_upload_hvvon top of this fix breaks stability and worsens performance.Confirmed Working
Tested and confirmed by multiple community members on:
Related Issues
Closing Note
This is an informational workaround thread and will be closed immediately to keep the active issue tracker clean. The proper fix belongs in the i915 kernel driver or Mesa's state tracking logic for Gen 9.5 GPUs. However, this workaround makes DX12 gaming viable on UHD 620 until an upstream patch is merged.