Нові версії 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, LAN Commander, 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.

Джерело: opennet.ru

Додати коментар або відгук