Wine 8.0 Release Candidate und vkd3d 1.6 Release

Die Tests des ersten Release Candidate Wine 8.0, einer offenen Implementierung von WinAPI, haben begonnen. Die Codebasis wurde vor der Veröffentlichung, die für Mitte Januar erwartet wird, in eine Einfrierphase versetzt. Seit der Veröffentlichung von Wine 7.22 wurden 52 Fehlerberichte geschlossen und 538 Änderungen vorgenommen.

Die wichtigsten Änderungen:

  • Das vkd3d-Paket mit der Direct3D 12-Implementierung, die die Aufrufübersetzung an die Vulkan-Grafik-API durchführt, wurde auf Version 1.6 aktualisiert.
  • Die Optimierung der Systemaufrufkonverter (Thunks) für Vulkan und OpenGL wurde durchgeführt.
  • WinPrint hat die Unterstützung für Druckprozessoren erweitert.
  • Verbessertes Joystick-Bedienfeld.
  • Die Arbeiten zur Unterstützung des Typs „long“ im printf-Funktionscode wurden abgeschlossen.
  • Fehlermeldungen im Zusammenhang mit dem Betrieb der Spiele sind geschlossen: Tom Clancy’s Rainbow Six: Vegas 2, The Void, Ragnarok Online, Drakan, Star Wars, Colin McRae, X-COM.
  • Geschlossene Fehlerberichte im Zusammenhang mit dem Betrieb von Anwendungen: TMUnlimiter 1.2.0.0, MDB Viewer Plus, Framemaker 8, Studio One Professional 5.

Darüber hinaus können wir die Veröffentlichung des Pakets vkd3d 1.6 mit einer Implementierung von Direct3D 12 durch das Wine-Projekt zur Kenntnis nehmen, das die Übersetzung von Aufrufen an die Vulkan-Grafik-API durchführt. Das Paket enthält libvkd3d-Bibliotheken mit Implementierungen von Direct3D 12, libvkd3d-shader mit einem Übersetzer der Shader-Modelle 4 und 5 und libvkd3d-utils mit Funktionen zur Vereinfachung der Portierung von Direct3D 12-Anwendungen sowie eine Reihe von Demobeispielen, einschließlich einer Portierung von glxgears auf Direct3D 12. Der Projektcode wird unter LGPLv2.1 lizenziert verteilt.

Die libvkd3d-Bibliothek unterstützt die meisten Direct3D 12-Funktionen, einschließlich Grafik- und Rechenfunktionen, Warteschlangen und Befehlslisten, Handles und Heap-Handles, Root-Signaturen, Out-of-Order-Zugriff, Sampler, Befehlssignaturen, Root-Konstanten, indirektes Rendering, Clear-Methoden *( ) und Copy*(). In libvkd3d-shader ist die Übersetzung des Bytecodes der Shader-Modelle 4 und 5 in eine SPIR-V-Zwischendarstellung implementiert. Unterstützt Vertex-, Pixel-, Tessellations-, Compute- und einfache Geometrie-Shader sowie Root-Signatur-Serialisierung und -Deserialisierung. Shader-Anweisungen umfassen arithmetische, atomare und Bitoperationen, Vergleichs- und Datenflusskontrolloperatoren, Sample-, Gather- und Load-Anweisungen sowie ungeordnete Zugriffsoperationen (UAV, Unordered Access View).

Die neue Version verbessert weiterhin den Shader-Compiler in HLSL (High-Level Shader Language), der ab DirectX 9.0 bereitgestellt wird. Zu den HLSL-bezogenen Verbesserungen gehören:

  • Erste Unterstützung für Compute-Shader wurde implementiert.
  • Verbesserte Unterstützung für die Initialisierung und Zuweisung zusammengesetzter Objekte wie Strukturen und Arrays.
  • Es wurde die Möglichkeit hinzugefügt, Texturressourcen mithilfe von Out-of-Order-Zugriff (UAV) zu laden und zu speichern.
  • Unterstützung für Funktionsattribute hinzugefügt und integrierte Funktionen asuint(), length(), normalize() implementiert.
  • Unterstützung für Gleitkommamodule hinzugefügt.
  • Das Flag VKD3D_SHADER_DESCRIPTOR_INFO_FLAG_UAV_ATOMICS wurde implementiert, um atomare Operationen auf UAV-Deskriptoren (Unordered Access Representation) anzuzeigen.

Source: opennet.ru

Kommentar hinzufügen