Nowe wersje Wine 9.2 i Winlator 5.0. Dla jądra Linuksa zaproponowano sterownik ntsync

Nastąpiło eksperymentalne wydanie otwartej implementacji API Win32 - Wine 9.2. Od wydania wersji 9.1 zamknięto 14 raportów o błędach i wprowadzono 213 zmian.

Najważniejsze zmiany:

  • Silnik Wine Mono z implementacją platformy .NET został zaktualizowany do wersji 9.0.0.
  • Ulepszona obsługa zasobnika systemowego.
  • Ulepszono obsługę wyjątków na platformach ARM.
  • W kompilacji zastosowano makro YEAR2038, aby użyć 64-bitowego typu time_t.
  • W sterowniku winewayland.drv poprawiono obsługę kursora.
  • Zamknięte są raporty o błędach związanych z działaniem gier: Elite Dangerous, Epic Games Launcher 15.21.0, LANCommander, Kodu.
  • Zamknięte raporty błędów związane z działaniem aplikacji: Quick3270 5.21, digikam, Dolphin Emulator, Windows Sysinternals Process Explorer 17.05, instalator Microsoft Webview 2.

Ponadto wypuszczono aplikację Winlator 5.0 na Androida, udostępniającą framework dla emulatorów Wine i Box86/Box64 do uruchamiania aplikacji Windows na platformie Android. Winlator wdraża środowiska Linux oparte na Ubuntu z Mesa3D, DXVK, D8VK i CNC DDraw, w których aplikacje Windows zbudowane dla architektury x86 są uruchamiane na urządzeniach ARM Android przy użyciu emulatora i Wine. Nowa wersja ulepsza menedżera zadań, poprawia wydajność, dodaje obsługę zmiany motywów i poprawia kompatybilność z XInput.

Można również zauważyć publikację na liście mailingowej jądra Linuksa sterownika ntsync, który implementuje urządzenie znakowe /dev/ntsync i zestaw prymitywów synchronizacji używanych w jądrze Windows NT. Implementacja takich prymitywów na poziomie jądra może znacznie poprawić wydajność gier Windows uruchamianych za pomocą Wine. Na przykład przy użyciu sterownika ntsync, w porównaniu z implementacją prymitywów synchronizacji NT w przestrzeni użytkownika, maksymalny FPS w grze Dirt 3 wzrósł o 678%, w grze Resident Evil 2 - o 196%, Tiny Tina's Wonderlands - o 177% , Lara Croft: Temple of Osiris – o 131%, Call of Juarez – o 125%, The Crew – o 96%, Forza Horizon 5 – o 48%, Anger Foot – o 43%.

Znaczący wzrost wydajności osiąga się poprzez wyeliminowanie narzutu związanego z uruchamianiem RPC w przestrzeni użytkownika. Utworzenie osobnego sterownika dla jądra Linuksa wynika z trudności w poprawnym zaimplementowaniu interfejsu API synchronizacji NT na istniejących elementach podstawowych w jądrze, na przykład operacji NtPulseEvent() i trybie „wait-for-all” w NtWaitForMultipleObjects( ) wymagają bezpośredniego zarządzania kolejką oczekiwania. Poprawki ze sterownikiem ntsync nadal mają status RFC, tj. zostały wystawione do dyskusji i przeglądu przez społeczność, ale nie kwalifikują się jeszcze do przyjęcia w głównym jądrze Linuksa.

Źródło: opennet.ru

Dodaj komentarz