vkd3d 1.2 on varustatud ühilduvuse täiustuste, varjutamise ja muuga

Wine'i projekt on välja andnud vkd3d 1.2 paketi uue versiooni koos Direct3D 12 implementatsiooniga , mis toimib Vulkani graafika API-le kõnede tõlkimise teel.

See uus vkd3d 1.2 versioon sisaldab mitmeid täiustusi, kuid peamised neist paistavad silma libvkd3d-shaderi kättesaadavus avaliku teegina , tessellatsioonivarjundite tugi ja voogedastusväljundi tugi.

Pakett sisaldab libvkd3d teeki koos Direct3D 12 implementatsioonidega, libvkd3d-shader teeki koos model 4 ja 5 varjundi tõlkijaga ning libvkd3d-utils teeki funktsioonidega Direct3D 12 rakenduste migreerimise lihtsustamiseks, samuti demode komplekti, sealhulgas glxgearsi porti Direct3D 12-le. Projekti kood levitatakse LGPLv2.1 litsentsi alusel.

Libvkd3d teek toetab enamikku Direct3D 12 funktsioone, sealhulgas graafika- ja arvutusfunktsioone, käskude loendeid ja järjekordi, deskriptoreid ja kuhja deskriptoreid, juurallkirju, järjestamata juurdepääsu, sämplereid, käskude signatuure, juurkonstante, kaudset renderdamist jne.

Libvkd3d-shader rakendab varjutusmudelite baitkoodide 4 ja 5 teisendamist SPIR-V vahepealseks esituseks. Toetatud on tipud, pikslid, tessellatsioon, lihtsad ja arvutusliku geomeetria varjutussüsteemid, juursignatuuri serialiseerimine ja deserialiseerimine.

Varjutaja käsud hõlmavad aritmeetilisi, aatomi- ja bitthaaval tehteid, andmevoo juhtimise ja võrdlemise operaatoreid, valimivõtmise, kogumise ja laadimise käske ning korrastamata juurdepääsuga toiminguid (UAV, Unordered Access View).

Selles arendusetapis pole kõik Direct3D 12 kõned veel rakendatud ja testimine viidi läbi peamiselt demorakenduste komplektil. See versioon ei sisalda arendusjärgus funktsioone, nagu tessellatsiooni ja keeruka geomeetriaga varjutajate tugi, samuti mitmeid varjutajate ja Direct3D 12 põhimeetoditega seotud täiustusi. Need funktsioonid pakutakse tulevases versioonis.

Vkd3d 1.2 peamised uued funktsioonid

Üks olulisemaid muudatusi uues versioonis on libvkd3d-shader teegi kättesaadavus kolmandate osapoolte projektides kasutamiseks, kuna on lisatud mitu Direct3D 12 funktsiooni, näiteks:

  • Mitme valimi moodustamine.
  • Reserveeritud ressursid.
  • Esimese astme andmete edastamise määr.
  • Privaatsete andmete API kõigi liideste jaoks.
  • Varjuressursi vaate komponentide vastendamine.
  • VK_KHR_draw_indirect_count laiend.
  • Predikaat / tingimuslik esitus.
  • Sügav renderdamine ilma piksli varjutajata.
  • Sügavuse väljalõige. Selleks on vaja laiendit VK_EXT_depth_clip_enable.
  • Viska rastrisaator minema.
  • Topeltallika segamine.
  • Paigutatud ressursside kaardistamine.
  • Meetodid ReadFromSubresource () ja WriteToSubresource () ID3D12Resource.
  • Samaaegne juurdepääs mitme järjekorra ressurssidele.
  • Tühjad vaated. St vaated ilma alusressursita.
  • Veel mitu funktsiooni tugipäringut.

Lisaks sellele on tähelepanuväärne ka lisatud tugi juurallkirjade teisendamiseks, serialiseerimiseks ja deserialiseerimiseks (vkd3d_serialize_versioned_root_signature() ja vkd3d_create_versioned_root_signature_deserializer()) , samuti voogedastusväljundi tugi.

Teine märkimisväärne muudatus on keskkonnamuutujate rakendamine: VKD3D_CONFIG libvkd3d käitumise muutmiseks vajalike valikute määramiseks ja VKD3D_VULKAN_DEVICE seadme tühistamiseks Vulkan API jaoks.

Lisaks lisati tugi varjundusjuhistele bufinfo, eval_centroid, eval_sample_index, ld2ms, sample_b, sample_d, sample_info, samplepos ning esialgne tugi model 5.1 varjundajatele.

Ja ka OpenGL SPIR-V sihtkeskkondade tugi. See võimaldab libvkd3d-shaderi toodetud SPIR-V-d kasutada koos GL_ARB_gl_spirv-ga. See hõlmab OpenGL aatomiloendurite ja kombineeritud proovivõtjate tuge.

Lõpuks, kui soovite selle uue versiooni kohta rohkem teada saada, saate tutvuda muudatuste täieliku loendiga järgmisel lingil.

Kuidas vkd3d Linuxi installida?

Neile, kes on huvitatud vkd3d-i installimisest oma süsteemi, peaksid nad hankima lähtekoodi ja jätkama kompileerimist, ehkki praktilistel eesmärkidel või nende algajate jaoks saavad nad seda teeki ilma suurema vaevata proovida. Selleks peavad nad installima ainult lutrisid ja selle konfiguratsioonides.

Mis puutub kompileerimisest huvitatutesse, siis peavad nad hankima koodi järgmiselt:

git clone git://source.winehq.org/git/vkd3d.git/
./autogen.sh
./configure
make
../vkd3d/configure --build=i686-pc-linux-gnu "CPPFLAGS=-m32" "LDFLAGS=-m32"

Lõpuks tuleb lubada Vulkani kihid:

export VK_INSTANCE_LAYERS=VK_LAYER_LUNARG_standard_validation
VKD3D_CONFIG=vk_debug


Lisa eelistatud allikana Google'is