Correction to my log analysis above, plus new measurements.
Correction. The user clip rect / setting real clip traces I highlighted are Proton-specific:
ValveSoftware/wine branch proton_9.0 calls fs_hack_rect_user_to_real() in
grab_clipping_window, while branch proton_10.0 has no fs_hack code in
dlls/winex11.drv/mouse.c at all, matching Wine upstream. Their absence under 11.0 is therefore
expected and not evidence of a skipped code path. Both versions call grab_clipping_window exactly
once — my "3 vs 1" was one call with three traces. That comparison does not localize anything;
please disregard it.
New measurements, Proton 11.0-1b, during gameplay:
WINEDEBUG=+msg, short gameplay session: 761 WM_MOUSEMOVE, 21 WM_LBUTTONDOWN, 21WM_LBUTTONUP, 4 WM_RBUTTONDOWN, all 807 of them retrieved by the game for one and the sameMeasured in both versions (9.0-4f and 11.0-1b):
WM_INPUT: 0, and no RegisterRawInputDevices — the game does not use raw input, it uses theWM_ACTIVATE, WM_ACTIVATEAPP, WM_KILLFOCUS, WM_SETFOCUS: 0 — no activation is lost.FocusIn / FocusOut: 0 — no X focus changes during the session either.So the input chain is intact all the way into the game's message loop, and behaves the same as
on 9.0-4f. Cursor clipping, pointer confinement, window focus and message delivery can all be ruled
out as the cause.
The only structural difference I found in the +msg logs is WM_WINE_WINDOW_STATE_CHANGED
(0x8000000a): 135 occurrences under 11.0-1b, none under 9.0-4f. I don't know whether that message
exists in Wine 9 at all, so I can't say whether this is meaningful or simply a message that was
introduced later.
I can't narrow this down further without knowledge of Wine internals. The reproduction is stable if
someone wants to bisect: Proton 9.0-4f works, everything from 10.0 onwards does not.
Still not tested on an X11 session.
proton 10.0x2 2026-08proton 11.0-1bx2 2026-08proton 9.0-4fx2 2026-08proton 9.0x1 2026-08ge-proton10-27x1 2026-08ge-proton11-3x1 2026-08proton11.0x1 2026-08proton9.0x1 2026-08WINEDEBUG=+msg`,x1 2026-08PROTON_LOG=1x1 2026-08WINEDEBUG=+rawinput,+dinput,+cursorx1 2026-080x8000000ax1 2026-08
Compatibility Report
System Information
1002:73bf)proton11.0-broken-rawinput.log
proton9.0.4-working-rawinput.log
Additional environment details relevant to this bug:
I confirm:
Symptoms
Since Proton 10, the mouse is not processed during gameplay. Menus and UI react to the mouse
normally — movement, hover and clicks all work. As soon as gameplay starts, mouse movement and
clicks have no effect at all; the character does not move or attack. Keyboard input keeps working
in both menus and gameplay. Proton 9.0-4f is unaffected.
The regression is stable across Wine 10 and Wine 11 based builds, including GE builds, so it does
not appear to be something GE patches around.
Already ruled out
gamescope -W 3440 -H 1440 -r 100 -f -- %command%), verified to actually wrap thegame (own
DISPLAY=:2,XDG_CURRENT_DESKTOP=gamescope): problem persists. This rules out thehost compositor, KWin pointer constraints and the multi-monitor X screen geometry as sole cause.
GrabFullscreen=YinHKCU\Software\Wine\X11 Driver: no change.FocusIn/FocusOutevents, so the game is notsimply losing focus.
Log analysis
Two runs were captured with
WINEDEBUG=+rawinput,+dinput,+cursor PROTON_LOG=1 %command%, usingidentical short sessions (enter gameplay, move mouse, click, quit).
Mouse motion reaches Wine correctly in both versions, with sane deltas:
The game never calls
RegisterRawInputDevices(0 occurrences in both logs), so it relies on thenormal cursor path and therefore on the cursor clip requested via
ClipCursor.The difference is in
grab_clipping_window:Proton 9.0-4f (working):
Proton 11.0-1b (broken):
In 9.0-4f the requested clip rect is translated into real X screen coordinates, adding the game
monitor's X offset of 2560 —
(1,1)becomes(2561,1). In 11.0-1b theuser clip rectandsetting real cliptraces do not appear anywhere in the log (0 occurrences each).grab_clipping_windowlinesungrab_clipping_windowmap_raw_event_coordsRegisterRawInputDevicesFocusIn/FocusOutCaveats
grab_clipping_windowmay have beenrefactored between Wine 9 and 10/11 with different TRACE output. Someone familiar with the
x11drv changes should be able to confirm or dismiss this quickly.
translation, the game should work under gamescope, where it renders on a single 3440x1440 screen
at origin 0,0. It does not. So either the offset translation is not the whole story, or gamescope
fails for an independent reason. Not investigated further.
difference between the versions.
Reproduction
(here: primary DP-1 at +2560+0), KDE Plasma Wayland session