Projekt Wina
biblioteka libvkd3d
W libvkd3d-shader zaimplementowano tłumaczenie kodu bajtowego modeli shaderów 4 i 5 na pośrednią reprezentację SPIR-V. Obsługiwane są moduły cieniujące wierzchołki, piksele, teselacja, obliczenia i prosta geometria, serializacja sygnatur głównych i deserializacja. Instrukcje modułu cieniującego obejmują operacje arytmetyczne, atomowe i bitowe, operatory porównania i kontroli przepływu danych, instrukcje próbkowania, gromadzenia i ładowania, operacje dostępu nieuporządkowanego (UAV, Unordered Access View).
Wśród najważniejszych
- Biblioteka libvkd3d-shader jest gotowa do użycia w projektach innych firm.
- Obsługa modułu cieniującego teselacji.
- Obsługa konwersji, serializacji i deserializacji podpisów głównych (vkd3d_serialize_versioned_root_signature() i vkd3d_create_versioned_root_signature_deserializer()).
- Obsługa wyjścia strumieniowego.
- Implementacja wielu niedostępnych wcześniej funkcji Direct3D 12, w tym obsługa multisamplingu, rezerwacja zasobów,
pośrednie renderowanie indeksowane, renderowanie głębi bez shaderów pikseli, jednoczesny dostęp do zasobów z różnych kolejek poleceń, widoki zerowe. - Dodano zmienne środowiskowe: VKD3D_CONFIG, aby ustawić opcje zmiany zachowania libvkd3d i VKD3D_VULKAN_DEVICE, aby zastąpić urządzenie dla API Vulkan.
- Dodano obsługę instrukcji modułu cieniującego bufinfo,
eval_centroid,
eval_sample_index,
ld2ms,
próbka_b,
próbka_d,
przykładowe informacje,
próbki.
Źródło: opennet.ru