Projekt Wine publikoval Vkd3d 1.5 s implementací Direct3D 12

Projekt Wine zveřejnil vydání balíčku vkd3d 1.5 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 je distribuován pod licencí LGPLv2.1.

Knihovna libvkd3d podporuje většinu funkcí Direct3D 12, včetně grafických a výpočetních prostředků, front a seznamů příkazů, ovladačů a ovladačů haldy, kořenových signatur, přístupu mimo pořadí, vzorníků, signatur příkazů, kořenových konstant, nepřímého vykreslování, metod Clear *( ) a Kopírovat*().

V libvkd3d-shader je implementován překlad bajtkódu shader modelů 4 a 5 do přechodné reprezentace SPIR-V. Podporuje vertex, pixel, teselaci, výpočet a jednoduchou geometrii shadery, serializaci kořenového podpisu a deserializaci. Shader instrukce zahrnují aritmetické, atomické a bitové operace, operátory porovná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).

V nové verzi:

  • V kompilátoru shaderu HLSL (High-Level Shader Language) poskytovaného od DirectX 9.0 byla provedena řada vylepšení. Včetně vylepšené podpory pro typy objektů HLSL, jako je Texture2D ve strukturách a polích, přidána podpora pro vestavěné funkce dot(), ldexp() a lerp(), přidána podpora logických operátorů „a“, „nebo“ pro modely shaderů 4 a 5 a „ne“, stejně jako schopnost přenášet booleovské typy.
  • Implementována volba VKD3D_SHADER_COMPILE_OPTION_TYPED_UAV pro načtení reprezentace neuspořádaného přístupu (UAV) pro vícedílné formáty SPIR-V (DXGI_FORMAT).

Zdroj: opennet.ru

Přidat komentář