https://bugs.winehq.org/show_bug.cgi?id=57192
Bug ID: 57192 Summary: X11DRV_SetCursorPos breaks when xinput "Coordinate Transformation Matrix" is customized Product: Wine Version: 9.1 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: winex11.drv Assignee: wine-bugs@winehq.org Reporter: mk939@ymail.com Distribution: ---
Created attachment 77083 --> https://bugs.winehq.org/attachment.cgi?id=77083 WINEDEBUG=+cursor,+win wine minetest.exe | trimmed to one repetition of the bugged SetCursorPos call
Discovered by testing Minetest 5.9.0 [1] in Wine. In-game, the cursor is always moved to the center. However, when the xinput "Coordinate Transformation Matrix" parameter, the cursor moves to unpredictable positions (bottom right corner, for example). The game becomes unplayable.
I think it's caused by "X11DRV_SetCursorPos" because skipping "NtUserSetCursorPos" entirely does avoid this issue. The cursor position is no longer centred, but the game does not look as glitchy any more.
System specifications:
* Ubuntu 22.04, X11, xfce4 * amdgpu driver
Reproduced in Wine 9.1, Wine 9.17 and Proton 9.0-2.
Reproduced with
* Wine's virtual desktop on and off * Window manager decorations on and off (winecfg) * Window manager control on and off (winecfg)
Steps to reproduce:
1. xinput list 2. Remember the xinput <ID> of the mouse (Virtual core pointer -> HID) 3. xinput --set-prop <ID> 'Coordinate Transformation Matrix' 1.1 0 0 0 1.1 0 0 0 1 4. Join a world in Minetest and try to play
This problem does not occur when the Transformation Matrix is set to "1.0 0 0 0 1.0 0 0 0 1". It also does not occur on Windows due to lack of xinput and X11 in the first place.
[1] https://github.com/minetest/minetest/releases/download/5.9.0/minetest-5.9.0-...