Projekt Wine vydal Vkd3d 1.4 s implementací Direct3D 12

Projekt Wine zveřejnil vydání balíčku vkd3d 1.4 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í.
  • Byla navržena nová implementace Descriptor Heap s použitím rozšíření Vulkan VK_EXT_descriptor_indexing.
  • Přidána nová implementace plotu založená na rozšíření Vulkan K_KHR_timeline_semaphore.

Zdroj: opennet.ru

Přidat komentář