Projekt Wine vydal Vkd3d 1.2 s implementací Direct3D 12

Projekt vína zveřejněna vydání balíčku vkd3d 1.2 s implementací Direct3D 12, která funguje prostřednictvím vysílání volání do grafického API Vulkan. Balíček obsahuje knihovny libvkd3d s implementacemi Direct3D 12, libvkd3d-shader s překladačem shader modelů 4 a 5 a libvkd3d-utils s funkcemi pro zjednodušení portování aplikací Direct3D 12 a také sadu ukázkových příkladů, včetně portu glxgears na Direct3D 12. Kód projektu distribuovány pod licencí LGPLv2.1.

knihovna libvkd3d podporuje Většina funkcí Direct3D 12, včetně grafiky a výpočetních zařízení, front a seznamů příkazů, ovladačů a ovladačů haldy, podpisů root, přístupu mimo pořadí, vzorníků, podpisů příkazů, kořenových konstant, nepřímého vykreslování, metod Clear*() a Kopírovat*().

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ší inovace ve Vkd3d 1.2 jsou zvýrazněny následující:

  • 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

Přidat komentář