A Wine projekt kiadta a Vkd3d 1.2-t Direct3D 12 implementációval

Borprojekt közzétett csomag kiadás vkd3d 1.2 Direct3D 12 implementációval, amely a Vulkan grafikus API-nak küldött hívásokon keresztül működik. A csomag tartalmaz libvkd3d könyvtárakat Direct3D 12 implementációval, libvkd3d-shader-t a 4-es és 5-ös shader modellek fordítójával és libvkd3d-utils-okat 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. Projekt kód forgalmazza LGPLv2.1 licenccel.

libvkd3d könyvtár támogatja A Direct3D 12 legtöbb funkciója, 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, parancsaláí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. Csúcs, pixel, tesselláció, számítás és egyszerű geometriai shader, gyökéraláírás szerializálás és deszerializálás támogatott. A Shader utasításai közé tartoznak az 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).

A legjelentősebbek között innovációk a Vkd3d 1.2-ben a következők vannak kiemelve:

  • A libvkd3d-shader könyvtár készen áll a harmadik féltől származó projektekben való használatra.
  • Tessellation shader támogatás.
  • A gyökéraláírások (vkd3d_serialize_versioned_root_signature() és vkd3d_create_versioned_root_signature_deserializer()) konverziójának, szerializálásának és deszerializálásának támogatása.
  • Streaming kimenet támogatása.
  • Számos korábban nem elérhető Direct3D 12 funkció megvalósítása, beleértve a többszörös mintavételezést, az erőforrás-foglalást,
    közvetett indexelt renderelés, mélységi renderelés pixel shader nélkül, egyidejű hozzáférés a különböző parancssorokból származó erőforrásokhoz, Null-nézetek.

  • Hozzáadott környezeti változók: VKD3D_CONFIG a libvkd3d viselkedésének módosítására vonatkozó beállítások megadásához, és VKD3D_VULKAN_DEVICE az eszköz felülbírálásához a Vulkan API számára.
  • Támogatás hozzáadva a bufinfo shader utasításokhoz,
    eval_centroid,
    eval_sample_index,
    ld2ms,
    minta_b,
    minta_d,
    minta_információ,
    samplepos.

Forrás: opennet.ru

Hozzászólás