Das Wine-Team hat veröffentlicht VKD3D 2.0 — ein umfangreiches Update der Bibliothek, die die Arbeit 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 Spielezweig 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 höher. Der Quellcode der Veröffentlichung wurde auf dem WineHQ-Server veröffentlicht, und der Code ist auch über die Wine-Repositorien verfügbar.
VKD3D 2.0 stellt den Übergang von einem Zweig 1.19 sofort auf die neue Hauptversion dar. Der Schwerpunkt liegt auf der Entwicklung des Shader-Subsystems und der untersten Ebene der Kompatibilität mit Direct3D 12.
Wesentliche Änderungen:
Die Verarbeitung von HLSL-Shadern wurde verbessert. Die Unterstützung für die HLSL-Sprache wurde erweitert: Es wurden mehr Operationen implementiert, die jetzt korrekt vom VKD3D-Compiler und -Translator verarbeitet werden. Dies ist wichtig für die Ausführung von Anwendungen, die eigene HLSL-Shader verwenden, und nicht nur vordefinierten Bytecode.
Die Unterstützung für legacy Direct3D-Bytecode wurde überarbeitet. Die Verarbeitung des alten Typs von Direct3D-Bytecode wurde verbessert, um die Kompatibilität mit alten Shader-Formaten und -Tools zu gewährleisten, die in Anwendungen und Engines nach wie vor verwendet werden.
Die Arbeit mit DXIL wurde verbessert. In VKD3D 2.0 wurde die Verarbeitung von DXIL - dem modernen Zwischenformat für DirectX-Shader - weiterentwickelt. Für D3D12 ist dies eines der Schlüssel-Formate, und daher wirken sich diese Änderungen direkt auf die ordnungsgemäße Ausführung neuerer Anwendungen aus.
Verbesserungen für Effekte wurden hinzugefügt. Die Veröffentlichung enthält Änderungen zu Effekten - Mechanismen zur Beschreibung und Anwendung von grafischen Effekten im Direct3D-Stack. Dies ist eher ein infrastruktureller Teil, aber er ist wichtig für die Kompatibilität mit bestehendem Grafikcode.
Experimentelle Unterstützung für MSL wurde hinzugefügt. VKD3D 2.0 erhielt experimentelle Unterstützung zur Generierung von MSL — Metal Shading Language. Dieser Bereich ist mit der Portabilität des Shader-Teils auf Plattformen verbunden, wo Vulkan normalerweise über zusätzliche Kompatibilitätsschichten verwendet wird.
Schnittstellen und Debugging-Funktionen wurden erweitert. Die Entwickler haben neue Schnittstellen hinzugefügt und die Debugging-Tools von VKD3D verbessert, was die Entwicklung, Fehlerdiagnose und die weitere Unterstützung von Direct3D 12 in Wine erleichtern sollte.
Es ist besonders zu betonen: Für die meisten Steam-Benutzer auf Linux bleibt die Hauptkomponente D3D12 VKD3D-Proton, und nicht das gewöhnliche VKD3D. Dennoch bleibt VKD3D ein wichtiger Teil von Wine und dient als grundlegende Implementierung von Direct3D 12 über Vulkan im Upstream-Projekt.
Quelle: linux.org.ru
