
A vkd3d a Wine Direct3D 12–Vulkan fordítási rétege
A Wine projekt néhány napja bejelentette a a vkd3d 1.11 csomag új verziójának kiadása, egy olyan verzió, amelyben fejlesztések történtek a vulkán bővítmények használatában, valamint támogatási fejlesztések, új funkciók és egyebek.
Azok számára, akik nem ismerik a Vkd3d-t, tudniuk kell, hogy ez egy olyan csomag, amely Direct3D 12 megvalósítást kínál a Vulkan grafikus API hívásaival és számos kulcsfontosságú könyvtárat tartalmaz. A libvkd3d könyvtár a Direct3D 12 implementációit tartalmazza, amelyek számos funkciót lefednek, mint például számítástechnika és grafika, parancssorok és listák, azonosítók stb.
A libvkd3d-shader könyvtár is rendelkezésre áll amely a 4-es és 5-ös shader-modellek fordítóját biztosítja egy köztes SPIR-V reprezentációhoz. Ez a könyvtár támogatja a vertex-, pixel-, tesszellációs, számítási és egyszerű geometriai árnyékolókat, valamint a gyökéraláírások szerializálását és deszerializálását.
Mi az új a vkd3d 1.11-ben?
A Vkd3d 1.11 bemutatja a kezdeti támogatás a korábbi Direct3D bájtkód fordításához a SPIR-V shaderek köztes ábrázolásában, valamint a skezdeti támogatás a HLSL p fordítóvaleffektusprofilok összeállításához.
Az új verzióban bemutatott másik fejlesztés a kísérleti támogatás a DXIL fordításához (DirectX köztes nyelv) a SPIR-V reprezentációban, új lehetőségeket biztosítva a Direct3D alkalmazások fejlesztéséhez. Ez a funkció megköveteli a vkd3d fordítását a 'preprocessor' opcióval-DVKD3D_SHADER_UNSUPPORTED_DXIL", és kísérletinek tekinthető.
is optimalizálták a csoportok és leírókészletek használatát amikor elérhetőek a bővítmények VK_EXT_mutable_descriptor_type és VK_EXT_shader_viewport_index_layer, amely a leírókészlettel való munka hatékonyságának javítására és a tesszellációs és vertex shader tömbök megjelenítésének felgyorsítására szolgál.
A c végrehajtásra kerültTámogatás a szabványos keretszínekhez, például a fekete-fehérhez és a módszert megvalósították GetResourceAllocationInfo1() az ID3D12Device4 interfész, valamint az ID3D12Device7 és ID3D12Resource2 interfészek támogatása.
Számos új funkció lekérdezés támogatott, többek között D3D12_FEATURE_D3D12_OPTIONS6 a D3D12_FEATURE_D3D12_OPTIONS13.
Megvalósították új építési lehetőségek: VKD3D_SHADER_COMPILE_OPTION_FEATURE felhasználható
adja meg a célkörnyezetben elérhető funkciókat, míg VKD3D_SHADER_COMPILE_OPTION_FEATURE_INT64 -vel való kompatibilitást jelzi
a 64 bites egész típusok a SPIR célkörnyezetben és VKD3D_SHADER_COMPILE_OPTION_FEATURE_FLOAT64 -vel való kompatibilitást jelzi
64 bites lebegőpontos típusok a SPIR-V célkörnyezetben.
A egyéb kiemelkedő változások ennek az új verziónak:
- A leírófrissítések mostantól aszinkron módon történnek egy belső munkaszálon, javítva a teljesítményt azokban az alkalmazásokban, amelyek keretenként sok leírót frissítenek.
- Új funkciókkal bővült a SPIR-V céltípus, beleértve a globálisan konzisztens, renden kívüli hozzáférési nézetek támogatását, a szálcsoportok soron kívüli hozzáférési nézetkorlátait és még sok mást.
- Az ID3D12Device7 interfész támogatott.
- A Vulkan-Headers minimálisan szükséges verziója ehhez a kiadáshoz a verzió
1.3.228. - Az ID3D12Resource2 interfész támogatott.
- Számos új funkció lekérdezés támogatott:
– D3D12_FEATURE_D3D12_OPTIONS6
– D3D12_FEATURE_D3D12_OPTIONS7
– D3D12_FEATURE_D3D12_OPTIONS8
– D3D12_FEATURE_D3D12_OPTIONS9
– D3D12_FEATURE_D3D12_OPTIONS10
– D3D12_FEATURE_D3D12_OPTIONS11
– D3D12_FEATURE_D3D12_OPTIONS12
– D3D12_FEATURE_D3D12_OPTIONS13 - Az acos(), asin(), atan() és atan2() belső függvények már támogatottak.
- Explicit regiszterleképezés a 'register()' kulcsszó használatával
- Konvertálás egész típusokból lebegőpontossá az 1-3 shader modellprofilokban.
Azoknak, akik szeretnének többet megtudni róla, tudnia kell, hogy a projektkód LGPL 2.1 alatt van terjesztve, és megtekintheti az új kiadás részleteit A következő linken.
Hogyan telepítsem a vkd3d 1.11-et?
mert érdeklődik a vkd3d telepítése iránt Tudniuk kell, hogy le kell fordítaniuk a forráskódot, ezért először azt kell beszereznünk, fontos megemlíteni, hogy a Vkd3d SPIRV-Headers és Vulkan-Headers függvénye (>= 1.3.228).
A fordítás meglehetősen egyszerű, és ehhez meg kell nyitnunk egy terminált, amelybe a következő parancsot írjuk be:
git clone https://gitlab.winehq.org/wine/vkd3d.git
Továbblépünk abba a mappába, ahova letöltöttük:
cd vkd3d
És folytatjuk a fordítást a következő parancsok végrehajtásával:
./configure make make install
Si szeretne többet megtudni az összeállításról A vkd3d-ben ellenőrizheti a részleteket ezt a linket