Projekt Wine vydal Vkd3d 1.3 s implementací Direct3D 12

Po roce a půl vývoje zveřejnil projekt Wine vydání balíčku vkd3d 1.3 s implementací Direct3D 12, která funguje prostřednictvím překladu 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ázek, včetně portu glxgears na Direct3D. Kód projektu je distribuován s licencí LGPLv12.

Knihovna libvkd3d podporuje většinu funkcí Direct3D 12, včetně grafiky a výpočtu, front a seznamů příkazů, deskriptorů a deskriptorů haldy, kořenových signatur, neuspořádaného přístupu, vzorníků, signatur příkazů, kořenových konstant, nepřímého vykreslování, metod Clear *() a Copy *().

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.3 vynikají:

  • Přidána počáteční podpora pro kompilaci a předběžné zpracování shaderů v HLSL (High-Level Shader Language), poskytované od DirectX 9.0.
  • Přidána podpora pro pole deskriptorů definovaná v shader modelu 5.1.
  • Podpora operací s plovoucí desetinnou čárkou s dvojitou přesností v shaderech, nepřímé adresování pro teselační shadery, export šablony z shaderů, "přesný" modifikátor shaderů a globální bariéry pro zdroje v paměti.
  • Implementována schopnost rozebrat Direct3D shadery z bajtkódu na reprezentaci assembleru.
  • Přidána podpora pro analýzu starého formátu bajtového kódu Direct3D používaného v modelech shaderů Direct3D 1, 2 a 3.
  • libvkd3d přidal funkce Direct3D 12, jako jsou kořenové podpisy, neuspořádané vyhledávací čítače, výstupní slučovací booleany, režim adresování textury mirror_once. Přidána struktura vkd3d_host_time_domain_info.

Zdroj: opennet.ru

Přidat komentář