A Wine projekt közzétette a Vkd3d 1.7 verziót Direct3D 12 implementációval

A Wine projekt közzétette a vkd3d 1.7-ös csomag kiadását a Direct3D 12 implementációjával, amely a Vulkan grafikus API-hoz küldött hívásokon keresztül működik. A csomag tartalmazza a libvkd3d könyvtárakat Direct3D 12 megvalósításával, a libvkd3d-shader-t a 4-es és 5-ös shader modellek fordítójával és a libvkd3d-utilokat a Direct3D 12 alkalmazások portolását egyszerűsítő funkciókkal, valamint egy sor bemutató példát, beleértve a portot. glxgears-ből Direct3D-re 12. A projektkód LGPLv2.1 licenc alatt kerül terjesztésre.

A libvkd3d könyvtár támogatja a legtöbb Direct3D 12 szolgáltatást, beleértve a grafikus és számítástechnikai lehetőségeket, a várólisták és parancslisták, leírók és kupac leírók, gyökér aláírások, renden kívüli hozzáférés, mintavevők, parancs aláírások, gyökérkonstansok, közvetett renderelés, Clear metódusok *( ) és Másolás*(). A libvkd3d-shaderben a 4-es és 5-ös shader-modell bájtkódjának fordítása egy köztes SPIR-V reprezentációra valósul meg. Támogatja a vertex, pixel, tessellation, számítási és egyszerű geometriai shadereket, gyökér aláírások szerializálását és deszerializálását. A Shader utasításai között szerepelnek aritmetikai, atomi és bitműveletek, összehasonlító és adatfolyam-vezérlő operátorok, mintavételezési, gyűjtési és betöltési utasítások, rendezetlen hozzáférési műveletek (UAV, Unordered Access View).

Az új verzióban:

  • Folytatódott a munka a shader fordító fejlesztésén a HLSL-ben (High-Level Shader Language):
    • Hozzáadtuk az egyéni függvények meghívásának és tömbök paraméterkénti használatát az egyéni függvényekhez.
    • Támogatás hozzáadva az SV_DispatchThreadID, SV_GroupID és SV_GroupThreadID paraméterekhez.
    • Hozzáadott beépített függvények all(), distance(), exp(), exp2(), frac(), lit(), reflekt(), sin(), cos(), smoothstep(), sqrt(), rsqrt () , step(), transzponál().
    • Kezdeti támogatás hozzáadva az alacsony pontosságú lebegőpontos típusokhoz, mint például a "min16float".
  • Jelentősen továbbfejlesztett támogatás a Direct3D 1/2/3 shader modellprofilokhoz.
  • Nyilvános API hozzáadva a DXBC bináris adatok elemzéséhez (vkd3d_shader_parse_dxbc) és szerializálásához (vkd3d_shader_serialize_dxbc).

Forrás: opennet.ru

Hozzászólás