
Wine Vkd3d 2.1 verbessert die HLSL-Unterstützung und die Shader-Reflexion
Die Open-Source-3D-Bibliothek „Vkd3d 2.1“ ist erschienen – mit erweiterter HLSL-Unterstützung, neuen Funktionen zur Shader-Reflexion, Verbesserungen bei SPIR-V und vielem mehr.
Eine Übersetzung von 🇬🇧 Linuxiac.com
Vkd3d, die Bibliothek von Wine zur Übersetzung von Direct3D in Vulkan, hat die Version 2.1 veröffentlicht, wobei der Schwerpunkt der Arbeit auf der Shader-Kompilierung, der Kompatibilität und der Reflection lag.
Eine der größten Verbesserungen betrifft HLSL, die Shader-Programmiersprache von Microsoft. Die neue Version behebt einen Compiler-Fehler im Zusammenhang mit verschachtelten Funktionsaufrufen, bei dem verschiedene Argumente fälschlicherweise dasselbe Ergebnis verwenden konnten.
Der Shader-Compiler verfügt nun über einen neuen Optimierungsdurchlauf, der ungenutzte Daten entfernt, damit sich ältere Direct3D-Shader ähnlicher verhalten wie bei der Kompilierung mit den Tools von Microsoft. Die Unterstützung für Halbpräzisionsarithmetik wurde erweitert, ebenso wie die strengere Überprüfung von Shader-Ein- und -Ausgaben.
Auch die Kompatibilität mit älterem Direct3D-Shader-Bytecode wurde verbessert: Vkd3d 2.1 bietet nun Unterstützung für weitere Legacy-Befehle und Modifikatoren, um ein breiteres Spektrum an älterem Shader-Code korrekt zu verarbeiten.
Bezüglich Vulkan erhält das SPIR-V-Backend zusätzliche Unterstützung für numerische Konvertierungen, insbesondere für Shader, die aus DXIL stammen, dem von modernem Direct3D verwendeten Zwischenformat.
Die Arbeit an der experimentellen GLSL-Ausgabe von Vkd3d wird fortgesetzt. Das Backend unterstützt nun fortgeschrittenere Shader-Funktionen, darunter Shared Memory, atomare Operationen, Barrieren, indirekten Zugriff auf Eingaben und zusätzliche Eingaben für Compute-Shader.
Ein weiterer wichtiger Bestandteil dieser Version ist die verbesserte Shader-Reflexion. Mithilfe der Reflexion kann Software einen kompilierten Shader untersuchen und Informationen über dessen Variablen, Ressourcen, Eingaben, Ausgaben und andere Eigenschaften abrufen.
Darüber hinaus fügt Vkd3d 2.1 viele bisher fehlende Reflection-Funktionen hinzu und erweitert die Unterstützung über Direct3D 12 hinaus auch auf die Direct3D 10- und 11-Schnittstellen.
Die Version verbessert zudem die Kompatibilität mit dem Verhalten älterer Microsoft-Shader-Compiler, insbesondere im Zusammenhang mit Variablen mit halber Genauigkeit, und führt neue Vorverarbeitungs- und Reflection-Funktionen ein, um bestimmte Versionen des Microsoft-Compilers genauer zu emulieren.
Schließlich wurden auch kleinere Verbesserungen an den Befehlszeilentools von Vkd3d vorgenommen. Der Shader-Compiler verfügt nun über eine Option für Halbpräzisionskompatibilität, während das DXBC-Dienstprogramm einzelne Abschnitte innerhalb kompilierter Shader-Container ersetzen kann, anstatt diese komplett neu zu erstellen.
Weitere Details finden Sie im Changelog. Vkd3d 2.1 ist als Quellcode bei WineHQ verfügbar.
Spendieren Sie Bobby einen ☕ Ko-fi
Ein Service von s3n🧩net















Comments