Másfél éves fejlesztés után, illő Wine projekt bejelentette az indulást a csomag új verziója «vkd3d 1.3″ Direct3D 12 implementációval, amely a hívások Vulkan grafikus API-ra történő fordításán keresztül működik.
Ez a verzió különféle fejlesztéseket tartalmaz, amelyek közül az új verzióban a legfontosabbak kezdeti HLS build támogatásL, valamint a Shader Model 5.1 leíró tömb támogatás, támogatás a Direct3D shader leszereléséhez és még sok máshoz.
Aki nem ismeri a csomagot, annak tudnia kell Tartalmaz libvkd3d könyvtárakat Direct3D 12 implementációkkal, libvkd3d-shader a 4. és 5. modell árnyékoló fordítójával, valamint a Direct3D 3 alkalmazások migrációját leegyszerűsítő függvényekkel ellátott libvkd12d-utils programokkal, valamint egy sor demóval, beleértve a glxgears portot a Direct3D 12 programba.
Könyvtár A libvkd3d támogatja a Direct3D 12 legtöbb funkcióját, beleértve a gráf- és számítási függvényeket, parancslistákat és sorokat, leírókat és kupacleírókat, gyökéraláírásokat, rendezetlen hozzáférést, mintavevőket, parancsaláírásokat, gyökérkonstansokat, proxy-reprezentációt stb.
libvkd3d-shader végrehajtja a 4. és 5. bájtkód fordítását az árnyékolási modellek közül a SPIR-V köztes ábrázolásban. A csúcsok, a pixelek, a tesszelláció, a számítási és egyszerű geometriai árnyékolók, a gyökéraláírás-szerializálás és a deszerializálás támogatott.
Az árnyékoló utasítások számtani, atomi és bitenkénti műveleteket tartalmaznak, adatfolyam-vezérlő és összehasonlító operátorok, mintavételi, gyűjtési és betöltési utasítások, rendezetlen hozzáférési műveletek (UAV, Rendezetlen hozzáférési nézet).
A jelenlegi fejlesztési szakaszban nem minden Direct3D 12-re irányuló hívás valósul meg és a teszteket főként egy sor demóalkalmazáson végezték el.
A Vkd3d 1.3 fő újdonságai
A vkd3d 1.3 bemutatott új verziójában kiemelték, hogy hozzáadott kezdeti támogatást a shaderek fordításához és előrendereléséhez HLSL-ben (magas szintű shader nyelv), amely a DirectX 9.0 óta biztosított.
Az új változatban kiemelkedő változások egyike a dupla pontosságú lebegőpontos műveletek támogatása shaderekben, valamint a tessellációs shaderek közvetettsége, a shaderekből származó sablonexportálás, a "pontos" shader módosító és a memórián belüli erőforrások globális akadályai.
Azt is tapasztalhatjuk, hogy a képes szétszedni a Direct3D shadereket kódból bájtokat az assembler reprezentációhoz, valamint hozzáadott támogatást a Direct3D 3, 1 és 2 shader modellekben használt régi Direct3D bájtkód formátum elemzéséhez.
A libvkd3d hozzáadta a Direct3D 12 funkcióit, mint például a gyökér aláírások, a rendezetlen keresési számlálók, a kimeneti összevonás logikai értékek, a mirror_once textúracímzési mód és a hozzáadott vkd3d_host_time_domain_info struktúra.
A többi változás közül amelyek kiemelkednek ebből az új verzióból:
- A vkd3d_shader_preprocess_info kiterjeszti a vkd3d_shader_compile_info struktúrát, és felhasználható előfeldolgozási paraméterek, például előfeldolgozó makródefiníciók megadására.
- A vkd3d_shader_hlsl_source_info kiterjeszti a vkd3d_shader_compile_info struktúrát, és felhasználható HLSL megadására és összeállítási paraméterek, például célprofil és belépési pont megadására.
- Kapcsolja össze a Direct3D 12 és a Vulkan modelleket
- A VKD3D_SHADER_COMPILE_OPTION_API_VERSION segítségével megadható az alkalmazás által megcélzott libvkd3d-shader API-verzió. Ha nincs megadva, a VKD3D_SHADER_API_VERSION_1_2 lesz használatban.
- A vkd3d-compiler alapértelmezés szerint színes kimenetet használ, ha meg tudja állapítani, hogy a
a kimenet egy színes teleprinter. - Hozzáadott támogatás a Shader Model 5.1-ben meghatározott leíró tömbökhöz.
Végül ha többet szeretne tudni róla az új verzióval kapcsolatban megtekintheti a változtatások teljes listáját A következő linken.
Hogyan kell telepíteni a vkd3d szoftvert Linuxra?
Azok számára, akik érdekeltek abban, hogy telepíthessék a vkd3d fájlt a rendszerükbe, meg kell szerezniük a forráskódot, és folytatniuk kell az összeállítást, bár gyakorlati célokból vagy az újoncok számára különösebb erőfeszítés nélkül kipróbálhatják ezt a könyvtárat. Ehhez csak a lutris-t kell telepíteniük és annak konfigurációin belül.
Ami az összeállítás iránt érdeklődőket illeti, meg kell szerezniük a kódot:
git clone git://source.winehq.org/git/vkd3d.git/
./autogen.sh
./configure
make
../vkd3d/configure --build=i686-pc-linux-gnu "CPPFLAGS=-m32" "LDFLAGS=-m32"
Végül engedélyezni kell a Vulkan rétegeket:
export VK_INSTANCE_LAYERS=VK_LAYER_LUNARG_standard_validation
VKD3D_CONFIG=vk_debug