Projekt Wine je objavio novu verziju paketa vkd3d 1.2 s implementacija Direct3D 12 koji funkcionira prevođenjem poziva na grafički API Vulkan.
Ova nova verzija vkd3d 1.2 sadrži razna poboljšanja, ali glavni koji se ističu su dostupnost libvkd3d-shadera kao javne knjižnice, oslonac za sjenčanje teselacija, kao i podrška za izlaz protoka.
Paketi uključuje biblioteke libvkd3d s implementacijama Direct3D 12, libvkd3d-shader s prevoditeljem osenčenja modela 4 i 5 i libvkd3d-utils s funkcijama za pojednostavljivanje migracije aplikacija Direct3D 12, kao i niz demonstracija, uključujući port glxgears na Direct3D 12. Kôd projekta distribuira se pod LGPLv2.1.
Knjižnica libvkd3d podržava većinu Direct3D 12 značajki, uključujući grafičke i računske funkcije, redove i popise naredbi, deskriptore hrpe i deskriptore, root potpise, neuređeni pristup, samplere, naredbene potpise, root konstante, neizravno predstavljanje i tako dalje.
Libvkd3d-sjenčanje provodi prijevod bajt koda 4 i 5 uzoraka sjenčanja u srednjem prikazu SPIR-V. Podržani su vrhovi, pikseli, tesselacija, računalni i jednostavni geometrijski sjenčići, serializacija korijenskog potpisa i deserializacija.
Upute za sjenčanje uključuju aritmetičke, atomske i bitovne operacije, operatori za kontrolu i usporedbu protoka podataka, upute za uzorkovanje, prikupljanje i učitavanje, neuređene radnje pristupa (UAV, pogled neuređenog pristupa).
U trenutnoj fazi razvoja nisu implementirani svi pozivi na Direct3D 12 a testovi su se uglavnom provodili na nizu demo aplikacija. Izdanje ne uključuje značajke u razvoju, poput podrške za složene geometrijske sjenčiće i tesselaciju, kao i brojna poboljšanja u vezi s osnovnim metodama i sjenačima Direct3D 12. Te će značajke biti ponuđene u budućem izdanju.
Glavne nove značajke Vkd3d 1.2
Od najvažnijih promjena koje su predstavljene u novoj verziji je Dostupnost biblioteke libvkd3d-shader za upotrebu u projektima trećih strana, od Dodane su razne funkcije Direct3D 12, kao što su:
- Višestruko uzorkovanje.
- Rezervirani resursi.
- Stope prolaska podataka instance.
- API "Privatni podaci" za sva sučelja.
- Mapiranje komponenata prikaza resursa sjenera.
- VK_KHR_draw_indirect_count proširenje.
- Predikatni / uvjetni prikaz.
- Dubinsko prikazivanje bez pikselskog sjenčanja.
- Izrez dubine. To zahtijeva VK_EXT_depth_clip_enable proširenje.
- Bacite rasterizator.
- Dvostruko miješanje izvora.
- Mapiranje plasiranih resursa.
- Metode ReadFromSubresource () i WriteToSubresource () ID3D12Resource.
- Istodobni pristup resursima s više redova.
- Nulti pogledi. Odnosno, pogledi bez osnovnog resursa.
- Još nekoliko upita o podršci za značajke.
Pored ovoga, Također je istaknuta dodana podrška za pretvaranje, serializiranje i deserializiranje potpisa root (vkd3d_serialize_versioned_root_signature () i vkd3d_create_versioned_root_signature_deserializer (), kao i podrška za strujni izlaz.
Druga promjena koja se ističe je implementacija varijable okoline: VKD3D_CONFIG za postavljanje opcija za promjenu ponašanja libvkd3d i VKD3D_VULKAN_DEVICE za poništavanje uređaja za Vulkan API.
osim toga dodana podrška za upute za sjenčanje bufinfo, eval_centroid, eval_sample_index, ld2ms, sample_b, sample_d, sample_info, samplepos i preliminarna podrška za sjenčice modela 5.1.
A također i podrška za OpenGL SPIR-V ciljna okruženja. To omogućuje upotrebu SPIR-V proizvedenog u libvkd3d-shaderu s GL_ARB_gl_spirv. To uključuje podršku za OpenGL atomske brojače i kombinirane uzorkivače.
Konačno ako želite znati više o tome o ovoj novoj verziji možete provjeriti cjelovit popis promjena U sljedećem linku.
Kako instalirati vkd3d na Linux?
Za one koji su zainteresirani za mogućnost instaliranja vkd3d na svoj sustav, trebali bi nabaviti izvorni kod i nastaviti s kompilacijom, iako u praktične svrhe ili za one početnike mogu isprobati ovu knjižnicu bez puno napora. Za to im je potrebno samo instalirati lutris i unutar njegovih konfiguracija.
Što se tiče zainteresiranih za kompilaciju, oni moraju dobiti kod sa:
git clone git://source.winehq.org/git/vkd3d.git/
./autogen.sh
./configure
make
../vkd3d/configure --build=i686-pc-linux-gnu "CPPFLAGS=-m32" "LDFLAGS=-m32"
Konačno, slojevi Vulkan moraju biti omogućeni:
export VK_INSTANCE_LAYERS=VK_LAYER_LUNARG_standard_validation
VKD3D_CONFIG=vk_debug