Zostało wydanie próbne otwartej implementacji Win32 API — Wine 9.2. Od wydania 9.1 zamknięto 14 raportów o błędach i wprowadzono 213 zmian.
Najważniejsze zmiany:
- Silnik Wine Mono z realizacją platformy .NET zaktualizowano do wydania 9.0.0.
- Poprawiona obsługa systemowego zasobnika.
- Na platformach ARM poprawiono obsługę wyjątków.
- Podczas budowy zastosowano makro YEAR2038 do użycia 64-bitowego typu time_t.
- W sterowniku winewayland.drv poprawiono obsługę kursora.
- Zamknięto raporty o błędach związane z działaniem gier: Elite Dangerous, Epic Games Launcher 15.21.0, LANCommander, Kodu.
- Zamknięto raporty o błędach związane z działaniem aplikacji: Quick3270 5.21, digikam, Dolphin Emulator, Windows Sysinternals Process Explorer 17.05, Microsoft Webview 2 installer.
Ponadto opublikowano wydanie aplikacji Android Winlator 5.0, która zapewnia przystawkę nad Wine i emulatorami Box86/Box64 do uruchamiania aplikacji Windows na platformie Android. Winlator uruchamia środowiska Linux oparte na Ubuntu z Mesa3D, DXVK, D8VK i CNC DDraw, w którym przy użyciu emulatora i Wine na urządzeniach ARM z Androidem uruchamiane są aplikacje Windows skompilowane dla architektury x86. W nowej wersji poprawiono działanie menedżera zadań, zwiększono wydajność, dodano wsparcie dla zmiany motywów i poprawiono kompatybilność z XInput.
Można również zauważyć publikację w liście dyskusyjnej jądra Linux sterownika ntsync, który implementuje urządzenie znakowe /dev/ntsync oraz zestaw prymitywów synchronizacji stosowanych w jądrze Windows NT. Implementacja takich prymitywów na poziomie jądra pozwala znacznie zwiększyć wydajność gier Windows uruchamianych za pomocą Wine. Na przykład podczas korzystania ze sterownika ntsync w porównaniu do implementacji 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ągany jest dzięki eliminacji narzutów związanych z używaniem RPC w przestrzeni użytkownika. Utworzenie oddzielnego sterownika dla jądra Linux tłumaczy się problemami z poprawną implementacją API synchronizacji NT na istniejących prymitywach w jądrze, na przykład operacje NtPulseEvent() oraz tryb 'wait-for-all' w NtWaitForMultipleObjects() wymagają bezpośredniego zarządzania kolejką oczekiwania. Łatki z sterownikiem ntsync są na razie w statusie RFC, czyli zostały wystawione do dyskusji i przeglądu przez społeczność, ale na razie nie ubiegają się o przyjęcie do głównego składu jądra Linux.
Źródło: opennet.ru
