Wine’s Wayland driver fixed the mouse control problem that plagued FPS games on Linux only


Summary

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

  • The patch prevents pointer lock-up errors that reduce tilts and cause camera problems.

  • The fix will be available in Wine 11.9; Wayland composers KWin, Mutter and wlroots already support the new API.

Gaming on Linux has come a long, long way in the past few years, but it’s still far from perfect. It’s very close and Linux reaches Windows, but it’s not perfect. The good news is that the open source community is working hard to iron out the last pieces of resistance that prevent games from running on Linux like they do on Windows.

If you’ve tried running an FPS title through Wine, you’ve probably noticed that the camera controls feel weird, confusing, or buggy. It turns out that this is due to Wine’s handling of the cursor, which affects the performance of FPS games. Fortunately, the fine folks who make up the Wine community squashed 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 gaming is getting faster as Windows APIs become Linux kernel features

As time goes by, less games are played on Linux than usual

Wine now lets you play FPS games without annoying camera issues

Linux has won another big game

Bazzite on gaming PC.

As reported Phoronixnew patch merged into Wine. titled “winewayland: Use wp_pointer_warp_v1 for SetCursorPos when available,” patch details what’s wrong with FPS games in Wine. FPS games rely on “cursor tilting,” which allows the program to move the cursor wherever it wants on the screen. If you’ve ever bugged your cursor in an FPS game where it’s visible, you may have noticed that it “sticks” to the exact middle of the screen.

The old method had problems achieving curvature:

The current SetCursorPos implementation abuses the set_cursor_position_hint side effect of zwp_locked_pointer_v1: it locks the pointer briefly, sets the position pointer, then unlocks. Composer binds position pointers to locked surface boundaries, so offsets to coordinates outside of this area are silently reduced, and the lock/unlock loop has delicate timing and side effect issues.

Fortunately, in June 2025, the Wayland protocols added wp_pointer_warp_v1, which allows a “direct cursor warp primitive without requiring pointer locking”. This new technology is already available in KWin 6.4 and above, GNOME’s Mutter 49 and above, and 0.19 and above. This new Wine patch simply replaces the old warping method with this new, shiny method. We should see the fix ship in Wine 11.9, the next development release is this Friday, so keep an eye out for that if you’re experiencing 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 increases are huge.

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



Source link

Leave a Reply

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