Weinprojekt
libvkd3d-Bibliothek
In libvkd3d-shader ist die Übersetzung des Bytecodes der Shader-Modelle 4 und 5 in eine SPIR-V-Zwischendarstellung implementiert. Vertex-, Pixel-, Tessellations-, Compute- und einfache Geometrie-Shader sowie Root-Signatur-Serialisierung und -Deserialisierung werden unterstützt. Shader-Anweisungen umfassen arithmetische, atomare und Bitoperationen, Vergleichs- und Datenflusskontrolloperatoren, Sample-, Gather- und Load-Anweisungen sowie ungeordnete Zugriffsoperationen (UAV, Unordered Access View).
Zu den bedeutendsten
- Die libvkd3d-shader-Bibliothek ist für den Einsatz in Drittprojekten bereit.
- Tessellation-Shader-Unterstützung.
- Unterstützung für Konvertierung, Serialisierung und Deserialisierung von Root-Signaturen (vkd3d_serialize_versioned_root_signature() und vkd3d_create_versioned_root_signature_deserializer()).
- Unterstützung für Streaming-Ausgabe.
- Implementierung vieler bisher nicht verfügbarer Direct3D 12-Funktionen, einschließlich Unterstützung für Multisampling, Ressourcenreservierung,
indirektes indiziertes Rendering, Tiefenrendering ohne Pixel-Shader, gleichzeitiger Zugriff auf Ressourcen aus verschiedenen Befehlswarteschlangen, Null-Ansichten. - Umgebungsvariablen hinzugefügt: VKD3D_CONFIG zum Festlegen von Optionen zum Ändern des libvkd3d-Verhaltens und VKD3D_VULKAN_DEVICE zum Überschreiben des Geräts für die Vulkan-API.
- Unterstützung für Bufinfo-Shader-Anweisungen hinzugefügt,
eval_centroid,
eval_sample_index,
ld2ms,
probe_b,
sample_d,
sample_info,
Beispielpos.
Source: opennet.ru