28.02.2024

Новые версии Wine 9.2 и Winlator 5.0. Для ядра Linux предложен драйвер ntsync

Состоялся экспериментальный выпуск открытой реализации Win32 API — Wine 9.2. С момента выпуска 9.1 было закрыто 14 отчётов об ошибках и внесено 213 изменений.

Наиболее важные изменения:

  • Движок Wine Mono с реализацией платформы .NET обновлён до выпуска 9.0.0.
  • Улучшена поддержка системного лотка.
  • На платформах ARM улучшена обработка исключений.
  • При сборке задействован макрос YEAR2038 для использования 64-разрядного типа time_t.
  • В драйвере winewayland.drv улучшена работа с курсором.
  • Закрыты отчёты об ошибках, связанные с работой игр: Elite Dangerous, Epic Games Launcher 15.21.0, LANCommander, Kodu.
  • Закрыты отчёты об ошибках, связанные с работой приложений: Quick3270 5.21, digikam, Dolphin Emulator, Windows Sysinternals Process Explorer 17.05, Microsoft Webview 2 installer.

Кроме того, опубликован релиз Android-приложения Winlator 5.0, предоставляющего обвязку над Wine и эмуляторами Box86/Box64 для выполнения Windows-приложений на платформе Android. Winlator разворачивает Linux-окружений на базе Ubuntu с Mesa3D, DXVK, D8VK и CNC DDraw, в котором при помощи эмулятора и Wine на ARM-устройствах с Android выполняются Windows-приложения, собранные для архитектуры x86. В новой версии улучшена работа менеджера задач, повышена производительность, добавлена поддержка смены тем оформления и улучшена совместимость с XInput.

Также можно отметить публикацию в списке рассылки ядра Linux драйвера ntsync, реализующего символьное устройство /dev/ntsync и набор примитивов для синхронизации, применяемых в ядре Windows NT. Реализация подобных примитивов на уровне ядра позволяет существенно поднять производительность Windows-игр, запускаемых при помощи Wine. Например, при использовании драйвера ntsync по сравнению с реализацией примитивов синхронизации NT в пространстве пользователя максимальный FPS в игре Dirt 3 увеличился на 678%, в игре Resident Evil 2 — на 196%, Tiny Tina’s Wonderlands — на 177%, Lara Croft: Temple of Osiris — на 131%, Call of Juarez — на 125%, The Crew — на 96%, Forza Horizon 5 — на 48%, Anger Foot — на 43%.

Значительный прирост производительности достигается благодаря избавлению от накладных расходов, связанных с применением RPC в пространстве пользователя. Создание отдельного драйвера для ядра Linux объясняется проблематичностью корректной реализации API синхронизации NT поверх существующих примитивов в ядре, например, операция NtPulseEvent() и режим «wait-for-all» в NtWaitForMultipleObjects() требуют прямого управления очередью ожидания. Патчи с драйвером ntsync пока имеют статус RFC, т.е. выставлены для обсуждения и рецензирования сообществом, но пока не претендуют для принятия в основной состав ядра Linux.

Источник: https://www.opennet.ru/opennews/art.shtml?num=60583 Источник.