Dank der Emulationsschicht Wine lassen sich Windows-Programme unter Linux starten. Die neue Version 10.0 bietet über 6.000 Codeänderungen und somit entsprechend viele Neuerungen – angefangen bei der unterstützten Architektur bis hin zu fast allen Bereichen der Grafikausgabe.
So läuft Wine 10.0 jetzt vollständig auf ARM64EC-Systemen und unterstützt Hybrid ARM64X-Module. Letztgenannte ermöglichen es, ARM64EC- und ARM64-Code in einem Programm beziehungsweise Binary auszuliefern. Wer Wine entsprechend übersetzen möchte, muss allerdings derzeit noch zu einer experimentellen LLVM-Toolchain greifen.
Einschränkungen auf ARM
Abschließend implementiert Wine die 64-Bit x86-Emulationsschnittstelle. Wine selbst läuft dabei nativ auf ARM64EC-Systemen, nur x86-Code wird emuliert. Den dafür notwendigen Emulator muss man allerdings selbst einbinden, die Wine-Entwickler empfehlen die ARM64EC-Fassung von FEX.
Aufgrund einer Limitierung der Windows-Programmierschnittstelle (ABI) verlangt Wine zudem auf ARM64-Systemen bei der Speichernutzung eine eingestellte Seitengröße (Page Size) von 4K. Die Ausführung auf Kerneln mit einer Page Size von 16K oder 64K unterstützt Wine offiziell nicht.
Neues vom Desktop
Über ein neues Desktop Control Panel Applet namens „desk.cpl“ kann man die aktuellen Bildschirmeinstellungen einsehen und ändern. Sollte eine Windows-Anwendung abstürzen, setzt Wine 10.0 die Bildschirmeinstellungen wieder zurück. Wine bietet zudem eine neue, noch experimentelle Modesetting Emulation. Dabei setzt die Software geänderte Bildschirmeinstellungen nicht mehr tatsächlich um, sondern emuliert sie vollständig. Falls notwendig, skaliert Wine die Windows-Fenster passend zu den physischen Monitoreinstellungen.
Shell Launcher und die Symbole im System Tray lassen sich über entsprechende Einstellungen in der Windows-Registrierung komplett abschalten. Wine 10.0 bringt zudem eine erste Version eines Bluetooth-Treibers mit, der bereits einige Grundfunktionen kennt. Darüber hinaus lässt sich eine Tastatur mit Dvorak-Layout korrekt nutzen.
Verbesserte Grafik
Das Wine-Team hat die HiDPI-Unterstützung verbessert. Fenster, die mit der hohen Auflösung nicht umgehen können (Non-DPI aware), skaliert Wine automatisch. Vor allem Spiele nutzen bei der Grafikausgabe die Vulkan-Schnittstelle. Der zugehörige Treiber erfüllt jetzt die Spezifikation 1.4.303, offeriert die Vulkan Video Extensions und erlaubt das sogenannte Child Window Rendering unter X11. Dabei rendern Anwendungen ihre 3D-Inhalte direkt in die Fenster. Schließlich unterstützt die GdiPlus-Schnittstelle noch Font Linking.
Die Wiedergabe von Multimediainhalten übernahm bislang unter Linux GStreamer. Wine 10.0 kann alternativ auch FFmpeg einspannen. Dies soll gleichzeitig die Kompatibilität zu Anwendungen erhöhen, die unter Windows das dort angebotene Media Foundation Framework verwenden. Die Zusammenarbeit mit FFmpeg gilt allerdings noch als experimentell. Die Media Foundation Pipelines emuliert Wine immerhin akkurater.
Überarbeitetes Direct3D
Im Rahmen der Direct3D-Schnittstelle gab es unter der Haube zahlreiche technische Verbesserungen. So unterstützten die GL- und Vulkan-Renderer jetzt den Shader-Stencil-Export. Der Vulkan-Renderer nutzt zudem verschiedene dynamische State Extensions, was wiederum das „Stottern“ in Spielen vermeiden soll. Der GL-Renderer lässt sich nur noch einsetzen, wenn das Host-System einen OpenGL-Treiber mit GLSL 1.20 sowie den Erweiterungen „EXT_framebuffer_object“ und „ARB_texture_non_power_of_two“ offeriert.
Dank des „vkd3d-shader“ kann Wine 10.0 erstmals Direct3D-Effekte compilieren. Diese Fähigkeit ist allerdings als „initial“ gekennzeichnet und somit noch nicht vollständig implementiert. D3DX 9 unterstützt unter anderem PNG-Dateien mit 48- oder 64-Bit sowie weitere Bump-Map und Paletten-basierte Formate. Abschließend kann DirectMusic MIDI-Dateien laden, während DirectPlay Netzwerk-Sessions erlaubt.
Viel Kleinkram
Wine 10.0 aktiviert standardmäßig den Wayland-Treiber, bevorzugt aber im Zweifelsfall den X11-Treiber. Unter Wayland unterstützt Wine OpenGL und die Auto-Repeat-Funktion bei Tastendrücken. Pop-Up-Fenster sollen zudem jetzt an der korrekten Stelle erscheinen.
Neben diesen größeren Änderungen gab es noch zahlreiche weitere kleinere. So unterstützt Wine 10.0 zusätzliche Sprachen und setzt auf den Unicode-Standard in der Version 16.0.0. Mit an Bord ist eine verbesserte JavaScript-Engine, die ODBC-Bibliothek lädt Windows ODBC-Treiber und die Namen (Label) von Datenträgern erfragt Wine jetzt vom Dbus.
Sämtliche Neuerungen in Wine 10.0 listen die recht langen Release Notes auf. Dort findet sich auch der Download zum Quellcode.





