Wine projekts ir izlaidis jaunu vkd3d 1.2 pakotnes versiju ar Direct3D 12 ieviešanu , kas darbojas, tulkojot izsaukumus uz Vulkan grafikas API.
Šajā jaunajā vkd3d 1.2 versijā ir vairāki uzlabojumi, taču galvenie, kas izceļas, ir libvkd3d-shader pieejamība kā publiska bibliotēka , atbalsts tessellation shaderiem, kā arī atbalsts straumes izvadei.
Pakotnē ietilpst libvkd3d bibliotēka ar Direct3D 12 ieviešanu, libvkd3d-shader bibliotēka ar 4. un 5. modeļa shaderu tulkotāju un libvkd3d-utils bibliotēka ar funkcijām, kas vienkāršo Direct3D 12 lietojumprogrammu migrāciju, kā arī demonstrāciju komplekts, tostarp glxgears ports uz Direct3D 12. Projekta kods tiek izplatīts saskaņā ar LGPLv2.1 licenci.
Libvkd3d bibliotēka atbalsta lielāko daļu Direct3D 12 funkciju, tostarp grafikas un skaitļošanas funkcijas, komandu sarakstus un rindas, deskriptorus un kaudzes deskriptorus, saknes parakstus, nesakārtotu piekļuvi, paraugu ņemšanas ierīces, komandu parakstus, saknes konstantes, netiešo renderēšanu utt.
Libvkd3d-shader īsteno shader modeļu baitkoda 4 un 5 tulkošanu starpposma SPIR-V reprezentācijā. Tiek atbalstītas virsotnes, pikseļi, mozaīka, vienkāršas un skaitļošanas ģeometrijas shaderi, saknes paraksta serializācija un deserializācija.
Šeidera instrukcijas ietver aritmētiskās, atomiskās un bitu pa bitam operācijas, datu plūsmas vadības un salīdzināšanas operatorus, paraugu ņemšanas, apkopošanas un ielādes instrukcijas, kā arī nesakārtotas piekļuves operācijas (UAV, Unordered Access View).
Šajā izstrādes posmā ne visi Direct3D 12 izsaukumi ir ieviesti , un testēšana galvenokārt tika veikta ar demonstrācijas lietojumprogrammu kopu. Šajā laidienā nav iekļautas izstrādes stadijā esošas funkcijas, piemēram, atbalsts tessellation un sarežģītas ģeometrijas ēnotājiem, kā arī vairāki uzlabojumi, kas saistīti ar ēnotājiem un Direct3D 12 pamatmetodēm. Šīs funkcijas tiks piedāvātas nākamajā laidienā.
Galvenās jaunās Vkd3d 1.2 iespējas
Viena no svarīgākajām izmaiņām jaunajā versijā ir libvkd3d-shader bibliotēkas pieejamība izmantošanai trešo pušu projektos, jo ir pievienotas vairākas Direct3D 12 funkcijas, piemēram:
- Vairāku paraugu ņemšana.
- Rezervētie resursi.
- Datu pārsūtīšanas ātrums instancēs.
- "Privāto datu" API visām saskarnēm.
- Shader resursu skata komponentu kartējumi.
- VK_KHR_draw_indirect_count paplašinājums.
- Predikāts / nosacīts attēlojums.
- Dziļuma renderēšana bez pikseļu ēnotāja.
- Dziļuma izgriezums. Tam nepieciešams paplašinājums VK_EXT_depth_clip_enable.
- Izmetiet rastru.
- Divkāršu avotu sajaukšana.
- Izvietoto resursu kartēšana.
- Metodes ReadFromSubresource () un WriteToSubresource () ID3D12Resource.
- Vienlaicīga piekļuve vairāku rindu resursiem.
- Null skati. Tas ir, skati bez pamata resursa.
- Vēl vairākas funkcijas atbalsta pieprasījumi.
Papildus tam jāatzīmē arī pievienotais atbalsts saknes parakstu konvertēšanai, serializācijai un deserializācijai (vkd3d_serialize_versioned_root_signature() un vkd3d_create_versioned_root_signature_deserializer()) , kā arī straumēšanas izvades atbalsts.
Vēl viena ievērojama izmaiņa ir vides mainīgo ieviešana: VKD3D_CONFIG, lai iestatītu opcijas libvkd3d darbības maiņai, un VKD3D_VULKAN_DEVICE, lai ignorētu ierīci Vulkan API.
Turklāt tika pievienots atbalsts ēnojuma instrukcijām bufinfo, eval_centroid, eval_sample_index, ld2ms, sample_b, sample_d, sample_info, samplepos un provizorisks atbalsts 5.1 modeļa ēnotājiem.
Un arī atbalsts OpenGL SPIR-V mērķa vidēm. Tas ļauj izmantot libvkd3d-shader radīto SPIR-V ar GL_ARB_gl_spirv. Tas ietver atbalstu OpenGL atomu skaitītājiem un kombinētajiem paraugu ņemšanas ierīcēm.
Visbeidzot, ja vēlaties uzzināt vairāk par šo jauno versiju, varat iepazīties ar pilnu izmaiņu sarakstu, izmantojot šo saiti.
Kā Linux instalēt vkd3d?
Tiem, kurus interesē iespēja instalēt vkd3d savā sistēmā, viņiem jāiegūst avota kods un jāturpina kompilācija, lai gan praktiskiem nolūkiem vai šiem iesācējiem viņi var izmēģināt šo bibliotēku bez īpašām pūlēm. Lai to izdarītu, viņiem ir jāinstalē tikai lutris un tā konfigurācijās.
Kas attiecas uz tiem, kurus interesē apkopošana, viņiem kods jāiegūst ar:
git clone git://source.winehq.org/git/vkd3d.git/
./autogen.sh
./configure
make
../vkd3d/configure --build=i686-pc-linux-gnu "CPPFLAGS=-m32" "LDFLAGS=-m32"
Visbeidzot, ir jāiespējo Vulkan slāņi:
export VK_INSTANCE_LAYERS=VK_LAYER_LUNARG_standard_validation
VKD3D_CONFIG=vk_debug