Kandidaten zu den Veröffentlichungen Wine 8.0 und vkd3d 1.6.

Die Tests der ersten Kandidaten für die Veröffentlichung von Wine 8.0, der Open-Source-Implementierung von WinAPI, haben begonnen. Die Codebasis wurde in die Phase der Einfrierung vor der Veröffentlichung überführt, die Mitte Januar erwartet wird. Im Vergleich zur Version Wine 7.22 wurden 52 Fehlerberichte geschlossen und 538 Änderungen vorgenommen.

Die wichtigsten Änderungen:

  • Das Paket vkd3d mit der Implementierung von Direct3D 12, das über das Übersetzen der Aufrufe in die Grafik-API Vulkan funktioniert, wurde auf Version 1.6 aktualisiert.
  • Die Optimierung der Systemaufruf-Converter (thunks) für Vulkan und OpenGL wurde durchgeführt.
  • Die Unterstützung für Druckausgabe-Handler (Print Processor) wurde in WinPrint erweitert.
  • Verbessert Steuerungspanel mit dem Joystick.
  • Die Arbeit zur Unterstützung des Typs ‚long‘ in der printf-Funktion wurde abgeschlossen.
  • Fehlerberichte, die sich auf die Funktion von Spielen beziehen, wurden geschlossen: Tom Clancy’s Rainbow Six: Vegas 2, The Void, Ragnarok Online, Drakan, Star Wars, Colin McRae, X-COM.
  • Fehlerberichte, die sich auf die Funktion von Anwendungen beziehen, wurden geschlossen: TMUnlimiter 1.2.0.0, MDB Viewer Plus, Framemaker 8, Studio One Professional 5.

Zusätzlich kann die Veröffentlichung des vkd3d 1.6 Pakets durch das Wine-Projekt erwähnt werden, das die Implementierung von Direct3D 12 enthält und über das Übersetzen der Aufrufe in die Grafik-API Vulkan funktioniert. Das Paket umfasst die Bibliotheken libvkd3d mit der Implementierung von Direct3D 12, libvkd3d-shader mit einem Übersetzer für Shader-Modell 4 und 5 sowie libvkd3d-utils mit Funktionen zur Vereinfachung des Portierens von Direct3D 12-Anwendungen, einschließlich einer Sammlung von Beispielanwendungen, die den Port von glxgears auf Direct3D 12 zeigen. Der Code des Projekts wird unter der LGPLv2.1-Lizenz veröffentlicht.

Die Bibliothek libvkd3d unterstützt die meisten Funktionen von Direct3D 12, einschließlich Grafik- und Compute-Funktionen, Warteschlangen und Befehlslisten, Deskriptoren und Heap-Deskriptoren, Wurzel-Signaturen, ungeordneten Zugriff, Sampler, Befehls-Signaturen, Wurzel-Konstanten, indirekte Zeichnungen, Clear*()-Methoden und Copy*(). In libvkd3d-shader wurde die Übersetzung von Bytecode der Shader-Modellversionen 4 und 5 in das Intermediate-Format SPIR-V implementiert. Unterstützt werden Vertex-, Pixel-, Tessellations-, Compute- und einfache geometrische Shader, Serialisierung und Deserialisierung von Wurzel-Signaturen. Implementiert sind die arithmetischen, atomaren und Bitoperationen, Vergleichsoperatoren und Steueranweisungen, sowie die Anweisungen sample, gather und load, und Operationen mit ungeordnetem Zugriff (UAV, Unordered Access View).

In der neuen Version wurde die Arbeit zur Verbesserung des HLSL (High-Level Shader Language) Compilers, der seit DirectX 9.0 verfügbar ist, fortgesetzt. Unter den Verbesserungen, die sich auf HLSL beziehen, sind:

  • Die erste Unterstützung für Compute-Shader wurde implementiert.
  • Die Unterstützung für die Initialisierung und Zuweisung zusammengesetzter Objekte wie Strukturen und Arrays wurde verbessert.
  • Die Möglichkeit zum Laden und Speichern von Texturressourcen mithilfe des uneingeschränkten Zugriffs (UAV) wurde hinzugefügt.
  • Die Unterstützung für Attributen von Funktionen wurde hinzugefügt, und integrierte Funktionen wie asuint(), length(), normalize() wurden implementiert.
  • Die Unterstützung für Module zur Berechnung mit Fließkommazahlen wurde hinzugefügt.
  • Die Flagge VKD3D_SHADER_DESCRIPTOR_INFO_FLAG_UAV_ATOMICS wurde implementiert, um atomare Operationen auf Deskriptoren des uneingeschränkten Zugriffs (UAV) anzuzeigen.

Quelle: opennet.ru

60GB SSD 8Gb DDR4