A Wine projekt közzétette a Vkd3d 1.13-t a Direct3D 12 megvalósításával

A Wine projekt közzétette a vkd3d 1.13 csomag kiadását, amely a Direct3D 12 megvalósítását kínálja a Vulkan grafikus API-ba való hívás átkonvertálásával. A csomag tartalmazza a Direct3D 12 megvalósítást tartalmazó libvkd3d könyvtárakat, a 4-es és 5-ös shader modellekhez való fordítót tartalmazó libvkd3d-shader könyvtárat, valamint a Direct3D 12 alkalmazások portálását megkönnyítő funkciókat tartalmazó libvkd3d-utils könyvtárat, továbbá egy sor bemutató példát, beleértve a glxgears Direct3D 12-re portolt verzióját is. A projekt kódja LGPLv2.1 licenc alatt érhető el.

A libvkd3d könyvtár a Direct3D 12 legtöbb funkcióját támogatja, beleértve a grafikai és számítási eszközöket, sorokat és parancslistákat, leírókat és tömbindikátorokat, gyökér szignatúrákat, rendezetlen hozzáférést, mintákat, parancsszignatúrákat, gyökér konstansokat, közvetett renderelést, valamint a Clear*() és Copy*() metódusokat. A libvkd3d-shader a shader modellek bytekódjának köztes képviseletbe való fordítását valósítja meg, amely támogatja a vertex, pixel, tesszellációs, számítási és egyszerű geometriai shader-eket, valamint a gyökér szignatúra sorozatát. A shader utasítások között megvalósították az aritmetikai, atomikus és bitmanipulációs műveleteket, összehasonlító operátorokat és az adatfolyam irányítását, mint például a sample, gather és load utasításokat, valamint a rendezetlen hozzáférés (UAV, Unordered Access View) műveleteit.

Az új verzióban:

  • Az HLSL fordítóba beépítették a ciklusok kiterjesztésének támogatását (loop unrolling), egy optimalizálási technikát, amely segít a CPU cache hatékonyabb kihasználásában és csökkenti az elágazásokat, mivel a ciklikus műveleteket egymás után következő kódkópákra cseréli.
  • Hatékonyabb állapotobjektumok támogatása a 4-es shader modellekhez tartozó effektusok fordítójában.
  • Támogatást biztosítottak a 4-es shader modellek alábbi típusaihoz: BlendState, ComputeShader, DomainShader, GeometryShader, HullShader, DepthStencilState, RasterizerState, valamint az OMSetRenderTargets(), SetBlendState(), SetComputeShader(), SetDomainShader(), SetGeometryShader(), SetHullShader(), SetPixelShader(), SetVertexShader(), SetDepthStencilState() és SetRasterizerState() funkciókhoz.
  • A shader fordítóban megvalósították a globális változók, funkcióparaméterek és annotációk inicializálási értékeinek különböző formátumokban való értelmezését és tárolását.
  • Megvalósították az 5.1-es shader modell regiszterterének támogatását.
  • Beépített funkciók kerültek megvalósításra: tex1D(), tex2D(), tex3D(), texCUBE(), asint(), f16tof32(), faceforward(), GetRenderTargetSampleCount(), rcp(), tex2Dbias(), tex1Dgrad(), tex2Dgrad(), tex3Dgrad() és texCUBEgrad().
  • A libvkd3d-hez hozzáadták az ID3D12CommandList6 interfészt, és lehetővé tették olyan textúrák létrehozását, amelyek tömörítése a spektrum különböző blokkjaiban történik (például külön tömörítve a 4×4 pixel méretű blokkokat).
  • Hozzáadva a vkd3d_shader_parameter_info struktúráját és a VKD3D_SHADER_PARAMETER_DATA_TYPE_FLOAT32, VKD3D_SHADER_PARAMETER_NAME_ALPHA_TEST_FUNC, VKD3D_SHADER_PARAMETER_NAME_ALPHA_TEST_REF, VKD3D_SHADER_PARAMETER_NAME_FLAT_INTERPOLATION és VKD3D_SHADER_PARAMETER_TYPE_BUFFER paramétereket.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster