Hello @pstvasko, we're using one issue report per unofficially supported game title, and usually I'd transfer this issue report to #607, but this is an excessively wordy duplicate of https://github.com/ValveSoftware/Proton/issues/607#issuecomment-5980425602. Closing in favor of the preexisting compatibility report.
proton 10.0x1 2026-10proton experimentalx1 2026-10proton hotfixx1 2026-10PROTON_LOGx1 2026-10PROTON_LOG=1x1 2026-10WINEDEBUG=+timestamp,+pid,+tid,+seh,+threadname,+debugstr,+loaddllx1 2026-10
Compatibility Report
Name of the game with compatibility issues: The Witcher 3: Wild Hunt
Steam AppID of the game: 292030
System Information
GPU: NVIDIA GeForce RTX 5070
Driver: NVIDIA 615.71.09
Kernel: 7.1.8-200.fc44.x86_64
Proton version:
Proton Experimental experimental-11.0-20261001 (prefix version 11.0-100)
Proton Hotfix hotfix-20261001
Game build: 5.0.1044392 (Steam "Remastered" update from 2026-09-29), DX12 executable bin/x64_dx12/witcher3.exe, launched with --launcher-skip. No mods.
Display: nested Wayland compositor + Xwayland 24.1.6, game runs under Xwayland. Game-streaming host, headless; input comes from virtual uinput keyboard/mouse plus two virtual joystick nodes (js0, js1).
Full system information gist: TODO
Proton log: TODO (we have a full PROTON_LOG=1 capture with WINEDEBUG=+timestamp,+pid,+tid,+seh,+threadname,+debugstr,+loaddll covering a hang)
I confirm:
that I haven't found an existing compatibility report for this game.
that I have checked whether there are updates for my system available.
Symptoms
The character dies, and the game starts the automatic reload of the last save.
The game freezes on the loading screen for 40 seconds to ~5 minutes, then recovers by itself and the load completes normally.
While the game is frozen:
GPU utilisation drops to ~4–6 % (normally 45–80 %);
RenderThread and MainThread keep spinning on the CPU;
disk I/O, decompression and streaming threads (RedIO, DecompressionThread, StreamingThread, LoadingJobThread) are idle, and their CPU counters do not move;
there is no crash, no Xid and no VK_ERROR_DEVICE_LOST.
Loading the same save from the main menu is fast and never hangs.
It only reproduces with saves later in the game. In our tests the hang reproduced with a ~950 KB save and never with ~210 KB early-game saves.
Backtraces during the hang
Captured with winedbg (attach, bt, detach), three snapshots: at the start, in the middle (+75 s) and at the end of the hang.
MainThread, identical in all three snapshots apart from the innermost setupapi/kernelbase frames:
ntdll / kernelbase (wait or registry)
setupapi+0xc00a / +0xbf8a / +0xc0a9 / +0x27424
setupapi+0x1314d
setupapi+0x13188
xinput1_4+0x5993
xinput1_4+0x5fbb
xinput1_4+0x20d0
witcher3+0x1e66290
witcher3+0x1e60fa2
witcher3+0x1b73fdc
witcher3+0x272cb27
...
RenderThread, waiting on the main thread:
ntdll+0xf034
ntdll+0x31617
witcher3+0x1c62875
witcher3+0x1c6248d
witcher3+0x27e0d00
witcher3+0x1ac5903
kernel32+0x11649
During the hang RenderThread is the only thread that writes to the log. It writes about 33 times per second:
err:sync:RtlLeaveCriticalSection section 00000005A584D740 "?" is not acquired
The same message also appears during normal gameplay (~5k lines before the hang), so it may be a symptom rather than the cause.
Our reading, not confirmed: during the "unload world → reload" step the game polls XInput from the main thread. Each XInput call in Wine 11 leads to a full device enumeration through setupapi, which is expensive. With a large world to tear down, the polling loop runs many times and the reload takes minutes. On Windows, XInput does not enumerate devices on every call.
What we tried
Disable controller input in the game menu. No change.
Hide all controllers from Wine: HKLM\System\CurrentControlSet\Services\winebus with DisableInput=1, DisableHidraw=1, Enable SDL=0. The hang still reproduces. The stack is still xinput1_4 → setupapi, so the cost is in enumeration itself and not in talking to real devices.
Disable xinput via DllOverrides (xinput1_4, xinput1_3, xinput9_1_0 = disabled). The game does not start at all.
Proton Experimental vs Proton Hotfix. Both reproduce. Not yet tested on Proton 10.0 or 9.0. Wine 11.x reworked parts of the HID / xinput PnP path (see e.g. WineHQ bug 59835), so we suspect a regression, but have not proven it yet.
Reproduction
Proton Experimental (11.0), DX12, --launcher-skip.
Load a mid/late-game save (we can provide one).
Let Geralt die.
Wait for the automatic reload: the load screen freezes for 40 s to 5 min.
Attachments we can provide
winedbg backtraces (start, middle, end of hang);
per-thread /proc state snapshots;
PROTON_LOG tail covering a hang;
a save that reproduces it.