Das Wine-Projekt hat Vkd3d 1.17 veröffentlicht, das Direct3D 12 implementiert.

Das Wine-Projekt hat die Version vkd3d 1.17 veröffentlicht, die die Implementierung von Direct3D 12 über einen Call-Translation-Mechanismus in die Vulkan-Grafik-API ermöglicht. Das Paket enthält 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 der Portierung von Direct3D 12-Anwendungen, einschließlich eines Sets von Demonstrationsbeispielen, die den Port von glxgears auf Direct3D 12 beinhalten. Der Code des Projekts wird unter der LGPLv2.1-Lizenz veröffentlicht.

Die libvkd3d-Bibliothek unterstützt die meisten Funktionen von Direct3D 12, einschließlich Grafik- und Compute-Tools, Queues und Command Lists, Deskriptoren und Heap-Deskriptoren, Root-Signaturen, unordentlichen Zugriff, Sampler, Kommando-Signaturen, Root-Konstanten, indirektes Rendering, die Clear*()- und Copy*()-Methoden. In libvkd3d-shader wird die Übersetzung von Shader-Modell-Bitcode in das Intermediate Representation SPIR-V implementiert. Unterstützt werden Vertex-, Pixel-, Tessellation-, Compute- und einfache Geometrie-Shader sowie die Serialisierung und Deserialisierung von Root-Signaturen. Zu den implementierten Shader-Instruktionen gehören arithmetische, atomare und bitweise Operationen, Vergleichs- und Datenflusssteuerungsoperatoren, Sample-, Gather- und Load-Instruktionen sowie unordentlicher Zugriff (UAV, Unordered Access View).

In der neuen Version:

  • In die Implementierung der HLSL-Shader-Sprache wurde eine anfängliche Unterstützung für den gemeinsamen Speicher von Thread-Gruppen hinzugefügt, die Unterstützung für Geometrie-Shader wurde erweitert, und ein Parser für die Ressourcen StructuredBuffer wurde hinzugefügt.
  • Die Entwicklung der Implementierung der Metal Shading Language (MSL), die von Apple im Grafik-API Metal verwendet wird, wurde fortgesetzt. Zum Beispiel wurde MSL um die Unterstützung von Schleifen, indirekter Adressierung von konstanten Buffern, Textursampling und verschiedenen Ganzzahloperationen sowie Vergleichen erweitert.
  • In der Bibliothek libvkd3d wurde die Implementierung des Programmierschnittstellen-ID3D12Device5 um die Methode EnumerateMetaCommands() erweitert.
  • Ein neuer Shadertyp "tx" (VKD3D_SHADER_SOURCE_TX) wurde hinzugefügt, der zum Laden von Texturverarbeitungs-Shadern verwendet wird.

Quelle: opennet.ru

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster