Projekt víno odhalené Pred niekoľkými dňami bola spustená nová verzia balík vkd3d 1.7 s implementáciou Direct3D 12, ktorá funguje prostredníctvom prekladu volaní do grafického API Vulkan.
El paquete obsahuje knižnice libvkd3d s implementáciami Direct3D 12, libvkd3d-shader s shader model translate 4 a 5 a libvkd3d-utils s funkciami na zjednodušenie migrácie aplikácií Direct3D 12, ako aj so sadou ukážok vrátane portu glxgears na Direct3D 12.
Knižnica libvkd3d podporuje väčšinu funkcií Direct3D 12, vrátane grafiky a výpočtov, zoznamov príkazov a frontov, deskriptorov a deskriptorov haldy, koreňových podpisov, neusporiadaného prístupu, vzoriek, podpisov príkazov, koreňových konštánt, nepriamej reprezentácie, metód Clear*() a Copy*().
Okrem toho libvkd3d-shader implementuje preklad bajtkódu 4 a 5 tieniacich modelov v prechodnom zobrazení SPIR-V. Podporuje vertex, pixel, teseláciu, výpočty a jednoduché geometrické shadery, serializáciu koreňového podpisu a deserializáciu.
Aritmetické, atómové a bitové operácie, operátori porovnávania a riadenia toku údajov, vzorkovanie, zhromažďovanie a zavádzanie pokynov, operácie prístupu mimo poradia (UAV, zobrazenie prístupu mimo poradia) sú implementované z inštrukcií tieňovania.
Hlavné nové funkcie vkd3d 1.7
V tejto novej verzii, ktorá je prezentovaná vkd3d 1.7, vyniká éPokračoval som v práci na zlepšení kompilátora shaderov HLSL (High-Level Shader Language), ako aj pridanie možnosti volať používateľom definované funkcie a použiť polia ako parametre užívateľom definovaných funkcií.
Ďalšou zo zmien, ktorá vyniká v novej verzii, je výrazne vylepšená podpora profilov shader model Direct3D 1/2/3, Tiež bola pridaná počiatočná podpora pre nízko presné typy s pohyblivou rádovou čiarkou, ako je min16float.
Tiež sa zdôrazňuje, že pridaná podpora pre parametre SV_DispatchThreadID, SV_GroupID a SV_GroupThreadID a že bolo pridané verejné API na analýzu (vkd3d_shader_parse_dxbc) a serializáciu (vkd3d_shader_serialize_dxbc) binárnych údajov DXBC.
Z ďalšie zmeny, ktoré vynikajú novej verzie:
- Podpora pre voliteľný parameter "offset" objektu textúry Load().
metóda. - Podpora pre vnútornú funkciu all().
- Podpora vnútornej funkcie distance().
- Podpora vnútorných funkcií exp() a exp2().
- Podpora pre vnútornú funkciu frac().
- Podpora pre vnútornú funkciu lit().
- Podpora pre vnútornú funkciu reflect().
- Podpora vnútorných funkcií sin() a cos().
- Podpora pre vnútornú funkciu smoothstep().
- Podpora vnútorných funkcií sqrt() a rsqrt().
- Podpora pre vnútornú funkciu step().
- Podpora pre vnútornú funkciu transpose().
- Podpora variantov údajov float a dword bez ohľadu na veľkosť písmen
typ - Čiastočná podpora pre dátové typy s minimálnou presnosťou, ako napríklad „min16float“. Tie sa v súčasnosti interpretujú ako ich bežné náprotivky.
Vylepšená podpora stáleho šírenia, najmä neustáleho šírenia pomocou swizzles. - Voľba kompilácie VKD3D_SHADER_COMPILE_OPTION_WRITE_TESS_GEOM_POINT_SIZE sa môže použiť na určenie, či by shadery SPIR-V zamerané na prostredia Vulkan mali zapisovať veľkosti bodov pre geometriu a teselačné shadery, ak nie je zadaná, zapíšu sa veľkosti bodov.
konečne, Pre tých, ktorí majú záujem o tom vedieť viac, mali by vedieť, že kód projektu je licencovaný pod LGPLv2.1 a že si môžu prečítať podrobnosti tohto nového vydania Na nasledujúcom odkaze.
Ako nainštalovať vkd3d 1.7?
pre záujem o možnosť nainštalovať vkd3d Musia vedieť, že musia skompilovať zdrojový kód, takže ho musíme najskôr získať, je dôležité spomenúť, že Vkd3d závisí od SPIRV-Headers a Vulkan-Headers (>= 1.2.139).
Na vykonanie kompilácie musíme otvoriť terminál a do neho napíšeme nasledujúci príkaz:
git clone https://gitlab.winehq.org/wine/vkd3d.git
Keď to urobíte, pristúpime k vstupu do nedávno stiahnutého adresára pomocou:
cd vkd3d
A pokračujeme v kompilácii vykonaním nasledujúcich príkazov:
./configure make make install
Si chcete vedieť viac o kompilácii z vkd3d si môžete pozrieť podrobnosti v tento odkaz