Das Testen des ersten Release-Kandidaten von Wine 8.0, der offenen WinAPI-Implementierung, hat begonnen. Der Code wurde in die Freeze-Phase vor der Veröffentlichung überführt, die Mitte Januar erwartet wird. Im Vergleich zur Veröffentlichung von Wine 7.22 wurden 52 Fehlerberichte geschlossen und 538 Änderungen vorgenommen.
Die wichtigsten Änderungen sind:
- Das vkd3d-Paket mit der Implementierung von Direct3D 12, die über die Übersetzung von Aufrufen in das Grafik-API Vulkan arbeitet, wurde auf Version 1.6 aktualisiert.
- Die Umsetzer für Systemaufrufe (Thunk) für Vulkan und OpenGL wurden optimiert.
- In WinPrint wurde der Support für Drucker-Handler (Print processor) erweitert.
- Verbessert Verwaltungspanel Joystick.
- Die Unterstützung für den Typ 'long' in der printf-Funktion wurde abgeschlossen.
- Fehlerberichte, die mit Spielen in Verbindung stehen, wurden geschlossen: Tom Clancy’s Rainbow Six: Vegas 2, The Void, Ragnarok Online, Drakan, Star Wars, Colin McRae, X-COM.
- Fehlerberichte, die mit Anwendungen in Verbindung stehen, wurden geschlossen: TMUnlimiter 1.2.0.0, MDB Viewer Plus, Framemaker 8, Studio One Professional 5.
Zusätzlich ist die Veröffentlichung des Wine-Projekts der vkd3d-Pakete 1.6 zu erwähnen, das die Implementierung von Direct3D 12 über die Übersetzung von Aufrufen in die Grafik-API Vulkan ermöglicht. Das Paket umfasst die Bibliotheken libvkd3d mit der Implementierung von Direct3D 12, libvkd3d-shader mit einem Übersetzer für Shader der Versionen 4 und 5 sowie libvkd3d-utils mit Funktionen zur Vereinfachung der Portierung von Direct3D 12-Anwendungen. Darüber hinaus enthält es eine Sammlung von Demonstrationsbeispielen, darunter den Port von glxgears auf Direct3D 12. Der Projektcode wird unter der LGPLv2.1-Lizenz veröffentlicht.
Die libvkd3d-Bibliothek unterstützt einen Großteil der Funktionen von Direct3D 12, einschließlich Grafik- und Rechenmittel, Warteschlangen und Befehlslisten, Beschreibungen und Heap-Deskriptoren, Root-Signaturen, ungeordneter Zugriff, Sampler, Befehls-Signaturen, Root-Konstanten, indirektes Rendering, Clear*()- und Copy*()-Methoden. In libvkd3d-shader wird die Übersetzung von Shader-Modellen 4 und 5 Bytecode in das Zwischenformat SPIR-V realisiert. Es werden Vertex-, Pixel-, Tessellations-, Compute- und einfache geometrische Shader unterstützt, sowie die Serialisierung und Deserialisierung von Root-Signaturen. Aus den Shader-Anweisungen sind arithmetische, atomare und bitweise Operationen, Vergleichsoperatoren und Datenflusssteuerungsanweisungen, Sample-, Gather- und Load-Anweisungen sowie Operationen für ungeordneten Zugriff (UAV, Unordered Access View) implementiert.
In der neuen Version wurde die Arbeit zur Verbesserung des HLSL-Compilers (High-Level Shader Language), der seit DirectX 9.0 bereitgestellt wird, fortgesetzt. Zu den Verbesserungen bezüglich HLSL gehören:
- Die erste Unterstützung für Compute-Shader wurde implementiert.
- Verbesserte Unterstützung für die Initialisierung und Zuweisung von zusammengesetzten Objekten wie Strukturen und Arrays.
- Hinzufügung der Möglichkeit zum Laden und Speichern von Texturrressourcen mit unordentlichem Zugriff (UAV).
- Unterstützung für Funktionsattribute und Implementation der integrierten Funktionen asuint(), length(), normalize().
- Hinzufügung von Modulsupport für Berechnungen mit Fließkommazahlen.
- Implementiert das Flag VKD3D_SHADER_DESCRIPTOR_INFO_FLAG_UAV_ATOMICS zur Kennzeichnung von atomaren Operationen auf Deskriptoren des unordentlichen Zugriffs (UAV).
Quelle: opennet.ru
