Das Wine-Projekt hat Vkd3d 1.3 mit der Implementierung von Direct3D 12 veröffentlicht.

Nach anderthalb Jahren Entwicklungszeit hat das Wine-Projekt die Version vkd3d 1.3 veröffentlicht, die eine Direct3D 12-Implementierung bietet, die durch die Übersetzung von Aufrufen in die Vulkan-Grafik-API funktioniert. Das Paket enthält die Bibliotheken libvkd3d mit der Direct3D 12-Implementierung, libvkd3d-shader mit dem Übersetzer für Shader-Modell 4 und 5 sowie libvkd3d-utils mit Funktionen zur Vereinfachung des Portierens von Direct3D 12-Anwendungen, zusätzlich zu einer Sammlung von Demonstrationsbeispielen, darunter der Port von glxgears auf Direct3D 12. 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 Berechnungsmöglichkeiten, Warteschlangen und Befehlslisten, Deskriptoren und Deskriptorspeichern, Wurzel-Signaturen, ungeordneten Zugriff, Sampler, Befehls-Signaturen, Wurzel-Konstanten, indirekte Rendering-Methoden, sowie die Methoden Clear*() und Copy*().

In libvkd3d-shader wurde die Übersetzung von Bytecode der Shader-Modelle 4 und 5 in die Intermediate Representation SPIR-V implementiert. Unterstützt werden Vertex-, Pixel-, Tessellation-, Compute- und einfache geometrische Shader sowie die Serialisierung und Deserialisierung von Root-Signaturen. Aus den Shader-Anweisungen wurden arithmetische, atomare und bitweise Operationen, Vergleichsoperatoren und Steueranweisungen für den Datenfluss, die Anweisungen sample, gather sowie load und Operationen für unordentlichen Zugriff (UAV, Unordered Access View) implementiert.

Zu den bemerkenswertesten Neuerungen in Vkd3d 1.3 gehören:

  • Die anfängliche Unterstützung für die Kompilierung und Preprocessing von Shadern in der HLSL (High-Level Shader Language), die seit DirectX 9.0 bereitgestellt wird, wurde hinzugefügt.
  • Die Unterstützung für Deskriptor-Arrays, die in den Shader-Modellen 5.1 definiert sind, wurde implementiert.
  • Die Unterstützung für Operationen mit Gleitkommazahlen doppelter Genauigkeit in Shadern, indirekte Adressierung für Tessellation-Shader, den Export von Stencils aus Shadern, den Shader-Modifikator „precise“ sowie globale Barrieren für Ressourcen im Speicher wurde gewährleistet.
  • Die Möglichkeit, Direct3D-Shader von Bytecode in Assemblersprache zu disassemblieren, wurde realisiert.
  • Die Unterstützung für das Parsen des alten Bytecode-Formats von Direct3D wurde hinzugefügt, das in den Shader-Modellen Direct3D 1, 2 und 3 verwendet wird.
  • In libvkd3d wurden Funktionen von Direct3D 12 hinzugefügt, darunter Root-Signaturen, unordentliche Zugriffsansichten, logische Merge-Operatoren für Ausgaben und der Texturaddressing-Modus mirror_once. Außerdem wurde die Struktur vkd3d_host_time_domain_info hinzugefügt.

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster