Wine 的 Wayland 原生驱动近日再进一步,正式合并了对 wp_pointer_warp_v1 协议的支持。这一改进将显著提升 Windows 游戏和应用程序在原生 Wayland 环境下的输入处理体验,尤其对第一人称射击(FPS)类游戏意义重大。

Wayland 的指针 warp 协议允许将鼠标光标移动到相对于 Wayland 表面的特定位置。这项功能在 FPS 游戏中几乎是刚需——玩家需要鼠标在屏幕边缘时能够"回绕"到另一侧,以实现无限视角旋转。此外,各类需要无限平移的应用程序,以及更精细的输入处理场景,也都依赖这一机制。
目前,广泛使用的 SDL 库已经支持 pointer warp 协议,主流 Wayland 合成器如 KWin 6.4+、GNOME 的 Mutter 49+ 以及 wlroots 0.19+ 也已实现该协议。Wine 此次跟进,意味着在 Wayland 会话中运行 Windows 游戏的体验将更加完整和流畅。
具体而言,Wine Wayland 驱动现在使用 wp_pointer_warp_v1 来处理 Windows API 中的 SetCursorPos 调用。这使得原本依赖光标位置重置的 Windows 游戏和应用能够在原生 Wayland 环境下正确运行,而无需依赖 XWayland 等兼容层。
对于尚未支持该协议的 Wayland 合成器,Wine 保留了原有的指针锁定(pointer locking)和提示(hint)回退机制,确保兼容性不会因此受损。
该合并请求已于本周一正式合入 Wine 主分支,预计将在本周五发布的 Wine 11.9 双周开发版中首次亮相。随着 Wine 对 Wayland 的支持日趋成熟,Linux 桌面用户离"无缝运行 Windows 游戏"的愿景又近了一步。
参考来源:https://www.phoronix.com/news/Wine-Wayland-Pointer-Warp