Wine 11.9 исправляет поведение мыши в шутерах на Wayland

2026-05-16 45 комментарии
Wine 11.9 закрывает давнюю проблему с поведением мыши в шутерах от первого лица на нативном Wayland: вместо обходного механизма с блокировкой курсора драйвер теперь использует протокол wp_pointer_warp_v1, поддержанный современными композиторами KWin, Mutter и wlroots

Wine 11.9 вышел как очередной двухнедельный выпуск прослойки совместимости, позволяющей запускать приложения и игры Windows на Linux, macOS и других UNIX-подобных системах. Главное изменение этого выпуска касается драйвера Wayland: добавлена поддержка протокола wp_pointer_warp_v1, благодаря которому Windows-функция SetCursorPos корректнее ведёт себя в нативной среде Wayland. Помимо этого, в Wine 11.9 интегрировали библиотеку SQLite, начали реализацию системных потоков, добавили приостановку потоков в эмулированном коде для ARM64 и закрыли 24 отчёта об ошибках.

Перемещение курсора в нативном Wayland через wp_pointer_warp_v1

В драйвер Wayland добавили поддержку протокола wp_pointer_warp_v1, который перемещает курсор в заданную позицию относительно Wayland-поверхности. Это напрямую влияет на обработку функции Windows API SetCursorPos — её используют в играх, где курсор принудительно возвращается в центр экрана для расчёта движения камеры.

SetCursorPos — функция Win32 API, перемещающая курсор в указанные экранные координаты. В шутерах от первого лица она нужна для удержания камеры: смещение мыши фиксируется, после чего курсор принудительно возвращается в опорную точку.

До этой версии такое поведение в Wine на Wayland эмулировалось через блокировку курсора и подсказки относительного перемещения. Подход работал, но не покрывал часть сценариев, в которых требуется именно прямое перепозиционирование курсора. Прямой вызов протокола избавляет от обходных приёмов и приближает поведение к тому, что игра получала бы под Windows.

wp_pointer_warp_v1 — протокол Wayland, добавленный в набор wayland-protocols в 2025 году. Позволяет приложению-клиенту запрашивать у композитора перемещение курсора в координаты относительно поверхности окна без использования механизмов блокировки указателя.

Прежний механизм с блокировкой и подсказками не удалили: он остаётся запасным вариантом для случаев, когда Wayland-композитор не поддерживает wp_pointer_warp_v1 или протокол отрабатывает с ошибкой.

Встроенная SQLite, системные потоки и ARM64

Помимо изменений в графической подсистеме, в Wine 11.9 добавили встроенную библиотеку SQLite. Это означает, что часть компонентов Wine, которым нужна локальная СУБД, теперь не зависит от внешней установки sqlite3 в системе.

SQLite — встраиваемая реляционная СУБД на языке C. Не использует архитектуру клиент-сервер: движок подключается к программе как обычная библиотека, а вся база хранится в одном файле на диске.

Также появилась начальная реализация системных потоков и приостановка потоков в эмулированном коде на ARM64. Эти изменения касаются ядра реализации Windows API в Wine и важны для дальнейшей работы над совместимостью с приложениями, опирающимися на низкоуровневую модель потоков NT.

Исправления в реализации VBScript

В Wine 11.9 закрыли три отдельные ошибки в реализации VBScript. Первая срабатывала на этапе компиляции при присваивании многомерных массивов по индексам. Вторая мешала собрать вызовы sub, в аргументах которых использовалось умножение. Из-за третьей строки некорректно преобразовывались в числа: значения интерпретировались как ASCII-символы, а не разбирались как числовые литералы.

VBScript — скриптовый язык программирования Microsoft, интерпретируемый компонентом Windows Script Host. Применяется в сценариях администрирования Windows, в страницах ASP и в устаревших клиентских скриптах для Internet Explorer.

Исправления для Wargaming Game Center, GraphPad Prism 9 и игр

Список приложений, для которых в этом выпуске закрыли отчёты об ошибках: Lotus Notes 8.x, Logos 9, WinSCP, HomeSite 5.5, GOM Player, Wargaming Game Center, GraphPad Prism 9, GXSCC, ExamDiff Pro, Command & Conquer 3, Command & Conquer Red Alert 3, Photoshop CS2 и SteelSeries GG 110.0.

Среди конкретных исправлений: в Wargaming Game Center устранили ошибку, из-за которой окно клиента не отображалось; в GraphPad Prism 9 теперь сохраняются файлы проекта с расширением .pzfx без установленного msxml6; GXSCC больше не падает при перетаскивании корректного MIDI-файла в окно программы.

На стороне игр закрыли проблему в библиотеке winhttp, мешавшую запуску DOAXVV на экране заголовка, а также схожие ошибки в Command & Conquer 3 и Red Alert 3. В реализации d3d9 добавили отсутствующий байтовый шаблон таблицы виртуальных функций (vtable) для MSVC.

Заключение

Ключевое практическое следствие Wine 11.9 — более корректное поведение мыши в шутерах от первого лица под нативным Wayland для тех, кто запускает игры через Wine, Proton или CrossOver на современных композиторах с поддержкой wp_pointer_warp_v1. Сопутствующие изменения в реализации VBScript и в работе с приложениями вроде GraphPad Prism 9 и Wargaming Game Center сужают список случаев, где Wine ведёт себя заметно иначе, чем Windows.

Подробности приведены в анонсе на сайте проекта. Исходный код выпуска опубликован на странице релиза в GitLab; готовые бинарные пакеты для поддерживаемых дистрибутивов Linux появятся в репозиториях проекта.

© .
Комментарии и отзывы

Нашли ошибку?

Новое на сайте