Projekt Wine objavio je izdanje paketa vkd3d 1.5 s implementacijom Direct3D 12, koja radi putem prevođenja poziva u grafički API Vulkan. Paket uključuje biblioteke libvkd3d s implementacijom Direct3D 12, libvkd3d-shader s prevoditeljem modela 4 i 5 š shaders, te libvkd3d-utils s funkcijama za olakšavanje portiranja aplikacija Direct3D 12, kao i skup demo primjera, uključujući port glxgears na Direct3D 12. Kod projekta je licenciran pod LGPLv2.1.
Biblioteka libvkd3d podržava većinu mogućnosti Direct3D 12, uključujući alate za grafiku i izračune, redove i liste komandi, deskriptore i deskriptore hrpa, korijenske potpise, neuređeni pristup, Sampler-e, potpise komandi, korijenske konstante, neizravno (indirect) renderiranje, metode Clear*() i Copy*().
U libvkd3d-shader implementirano je prevođenje bytecode-a modela š shaders 4 i 5 u međuresni oblik SPIR-V. Podržani su vršni, pikselni, tesselacijonski, izračunati i jednostavni geometrijski š shaders, kao i serijalizacija i deserializacija korijenskog potpisa. Od š shaders instrukcija implementirane su aritmetičke, atomske i bitne operacije, operatori usporedbe i kontrole toka podataka, instrukcije sample, gather i load, te operacije neurednog pristupa (UAV, Unordered Access View).
U novoj verziji:
- Uvedena su brojna poboljšanja u HLSL (High-Level Shader Language) kompilatoru š shaders, koji je dostupan od DirectX 9.0. U uključivanje struktura i nizova poboljšana je podrška za objektne tipove HLSL, kao što su Texture2D, dodana je podrška za ugrađene funkcije dot(), ldexp() i lerp(), za modele 4 i 5 š shaders dodana je podrška za logičke operatore «and», «or» i «not», te mogućnost pretvorbe bool tipova.
- Implementirana je opcija VKD3D_SHADER_COMPILE_OPTION_TYPED_UAV za učitavanje neuređenog pristupa (UAV) za višekomponentne formate SPIR-V (DXGI_FORMAT).
Izvor: opennet.ru
