Das Wine-Team hat VKD3D 2.0 — eine umfangreiche Veröffentlichung der Bibliothek, die die Funktionalität von Anwendungen mit Direct3D 12 auf Vulkan. VKD3D wird im regulären Upstream-Wine verwendet, um D3D12-Anwendungen zu unterstützen; es sollte nicht mit VKD3D-Proton, einem separaten Gaming-Zweig von Valve, der in Proton/Steam Play verwendet wird, verwechselt werden.
Das Projekt wird unter der Lizenz GNU Lesser General Public License 2.1 oder einer späteren Version. Der Quellcode der Version wird auf dem Server von WineHQ veröffentlicht, der Code ist auch über die Wine-Repositories verfügbar.
VKD3D 2.0 markiert den Übergang von der Version 1.19 sofort zu einer neuen Hauptversion. Der Schwerpunkt liegt auf der Entwicklung des Shader-Subsystems und der Low-Level-Kompatibilität mit Direct3D 12.
Wichtige Änderungen:
Die Verarbeitung von HLSL-Shadern wurde verbessert. Die Unterstützung der HLSL-Sprache wurde erweitert: weitere Operationen wurden implementiert, die jetzt korrekt vom Compiler und Translater VKD3D verarbeitet werden. Dies ist wichtig für den Betrieb von Anwendungen, die eigene HLSL-Shader verwenden, und nicht nur vorab kompilierten Bytecode.
Die Unterstützung des Legacy Direct3D-Bytecodes wurde optimiert. Die Arbeit mit dem alten Typ des ursprünglichen Direct3D-Bytecodes wurde verbessert, um die Kompatibilität mit älteren Shader-Formaten und -Tools zu gewährleisten, die immer noch in Anwendungen und Engines vorkommen.
Die DXIL-Verarbeitung wurde verbessert. In VKD3D 2.0 wurde die Verarbeitung von DXIL — der modernen Zwischendarstellung von DirectX-Shadern — weiter optimiert. Für D3D12 ist dies eines der Schlüsselformate, daher wirken sich solche Änderungen direkt auf die Fehlerfreiheit der Ausführung neuerer Anwendungen aus.
Verbesserungen für Effekte wurden hinzugefügt. Die Veröffentlichung umfasst Änderungen im Zusammenhang mit Effekten — Mechanismen zur Beschreibung und Anwendung von grafischen Effekten im Direct3D-Stack. Dies ist eher ein infrastruktureller Teil, spielt jedoch eine wichtige Rolle für die Kompatibilität mit bestehendem Grafikcode.
Experimentelle Unterstützung für MSL ist verfügbar. VKD3D 2.0 hat experimentelle Unterstützung für die Generierung MSL — Metal Shading Language. Diese Richtung ist mit der Portabilität des Shader-Teils auf Plattformen verbunden, auf denen Vulkan normalerweise über zusätzliche Kompatibilitätsschichten verwendet wird.
Die Schnittstellen und Debugging-Möglichkeiten wurden erweitert. Die Entwickler haben neue Schnittstellen hinzugefügt und die Debugging-Tools von VKD3D verbessert, was die Entwicklung, Fehlersuche und die weitere Unterstützung von Direct3D 12 in Wine erleichtern sollte.
Besonders zu betonen ist: Für die meisten Steam-Nutzer auf Linux bleibt die Haupt-D3D12-Komponente bestehen. VKD3D-Proton, und nicht das gewöhnliche VKD3D. Dennoch bleibt VKD3D ein wichtiger Bestandteil von Wine und stellt die grundlegende Implementierung von Direct3D 12 über Vulkan im Upstream-Projekt dar.
Quelle: linux.org.ru
