Projekt Wine publikoval Vkd3d 1.7 s implementací Direct3D 12

Projekt Wine zveřejnil vydání balíčku vkd3d 1.7 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ě grafiky a výpočetních zařízení, 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é SPIR-V reprezentace. Podporuje vertex, pixel, teselaci, výpočetní a jednoduché geometrické shadery, serializaci kořenových signatur a deserializaci. Shader instrukce zahrnují 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).

V nové verzi:

  • Pokračovala práce na vylepšení kompilátoru shaderů v HLSL (High-Level Shader Language):
    • Přidána možnost volat vlastní funkce a používat pole jako parametry vlastních funkcí.
    • Přidána podpora pro parametry SV_DispatchThreadID, SV_GroupID a SV_GroupThreadID.
    • Přidány vestavěné funkce all(), distance(), exp(), exp2(), frac(), lit(), reflect(), sin(), cos(), smoothstep(), sqrt(), rsqrt () , krok (), transponovat ().
    • Přidána počáteční podpora pro typy s plovoucí desetinnou čárkou s nízkou přesností, jako je „min16float“.
  • Výrazně vylepšená podpora pro Direct3D 1/2/3 profily shader modelu.
  • Přidáno veřejné API pro analýzu (vkd3d_shader_parse_dxbc) a serializaci (vkd3d_shader_serialize_dxbc) binárních dat DXBC.

Zdroj: opennet.ru

Přidat komentář