Wine’s Wayland driver just fixed the mouse control issue affecting FPS games on Linux


Summary

  • Wine fixes FPS camera shake by switching to Wayland’s wp_pointer_warp_v1 for proper cursor warping.

  • The patch prevents pointer lock bugs that caused warping and camera issues.

  • The solution will come with Wine 11.9; Wayland composers KWin, Mutter, and wlroots now support the new API.

Gaming on Linux has come a long way in recent years, but it’s still not perfect. It’s very close and Linux is catching up with Windows, but it’s not perfect. The good news is that the open source community is working very hard to remove those last holdouts that prevent games on Linux from running as well as they do on Windows.

If you’ve tried running an FPS title through Wine, you may have noticed that the camera controls feel strange, shaky, or glitchy. It turns out that it is due to how Wine handles the cursor, which affects how FPS games work. Fortunately, the excellent people who make up the Wine community have fixed this nasty bug, so FPS games should run a little better now.


A TV showing DOOM 2016 running on Bazzite with a performance overlay in the top left corner

Linux games are getting faster because Windows APIs are becoming features of the Linux kernel

As time goes on, there are fewer and fewer games that cannot be played on Linux

Wine now lets you play FPS games without annoying camera issues

Linux Scores Another Big Gaming Win

Bazzite on a gaming PC.

As reported by ForonyxA new patch has been merged into Wine. Titled “Winewayland: Use wp_pointer_warp_v1 for SetCursorPos when available“, the patch details what was going wrong with FPS games in Wine. FPS games rely on “cursor warping,” which allows the application to move the cursor wherever it wants on the screen. If you’ve ever triggered a bug in an FPS game that makes the cursor visible, you may have noticed that it “sticks” to the center of the screen no matter where you move the mouse. That’s the warping effect.

The old method had problems achieving deformation:

The existing implementation of SetCursorPos abuses the set_cursor_position_hint side effect of zwp_locked_pointer_v1: it briefly locks the pointer, sets the position hint, and then unlocks it. The composer fixes position hints at the boundaries of the locked surface, so warps to coordinates outside that area are silently removed, and the lock/unlock cycle has subtle timing issues and side effects.

Fortunately, in June 2025, Wayland Protocols added wp_pointer_warp_v1, which allows “a direct cursor warp primitive without requiring pointer locking.” This new technology is now available in KWin 6.4 and higher, GNOME Mutter 49 and higher, and wlroots 0.19 and higher. This new Wine patch simply swaps out the old warping method for this shiny new method. We should see the fix in Wine 11.9, and the next development release is out this Friday, so keep an eye out if you’re having any nasty FPS camera issues.


A computer screen showing Windows applications running on Ubuntu through Wine

Wine 11 rewrites how Linux runs Windows games at the kernel level and the speed gains are huge

Wine 11 is the biggest leap for Linux gaming in years.



Source link

Leave a Reply

Your email address will not be published. Required fields are marked *