Projekt vína
knihovna libvkd3d
libvkd3d-shader implementuje překlad bajtkódu 4 a 5 shader modelů do přechodné reprezentace SPIR-V. Podporuje vertex, pixel, teselaci, výpočet a jednoduchou geometrii shadery, serializaci kořenového podpisu a deserializaci. Aritmetické, atomické a bitové operace, operátory porovnávání a řízení toku dat, vzorkování, shromažďování a načítání instrukcí, operace neuspořádaného přístupu (UAV, Unordered Access View) jsou implementovány z instrukcí shaderu.
Mezi nejvýznamnější
- Knihovna libvkd3d-shader je připravena pro použití v projektech třetích stran.
- Podpora tessellation shaderu.
- Podpora pro konverzi, serializaci a deserializaci kořenových podpisů (vkd3d_serialize_versioned_root_signature() a vkd3d_create_versioned_root_signature_deserializer()).
- Podpora streamovaného výstupu.
- Implementace mnoha dříve nedostupných funkcí Direct3D 12, včetně podpory multisamplingu, rezervace zdrojů,
nepřímé indexované vykreslování, vykreslování hloubky bez pixel shaderů, současný přístup ke zdrojům z různých front příkazů, zobrazení Null. - Přidány proměnné prostředí: VKD3D_CONFIG pro nastavení voleb pro změnu chování libvkd3d a VKD3D_VULKAN_DEVICE pro přepsání zařízení pro Vulkan API.
- Přidána podpora pro instrukce buffinfo shader,
eval_centroid,
eval_sample_index,
ld2ms,
sample_b,
sample_d,
ukázkové_informace,
ukázky.
Zdroj: opennet.ru