Prosjektet vin avduket For noen dager siden lanseringen av den nye versjonen av vkd3d 1.7-pakke med en Direct3D 12-implementering som fungerer gjennom oversettelse av kall til Vulkan graphics API.
El paquete inkluderer libvkd3d-biblioteker med Direct3D 12-implementeringer, libvkd3d-shader med shader model translate 4 og 5, og libvkd3d-utils med funksjoner for å forenkle migreringen av Direct3D 12-applikasjoner, samt et sett med demoer, inkludert en port av glxgears til Direct3D 12.
Libvkd3d-biblioteket støtter de fleste Direct3D 12-funksjoner, inkludert grafikk og beregning, kommandolister og køer, deskriptorer og heap-beskrivelser, rotsignaturer, uordnet tilgang, samples, kommandosignaturer, rotkonstanter, indirekte representasjon, Clear*() og Copy*()-metoder.
Foruten det libvkd3d-shader implementerer oversettelse av bytekode 4 og 5 av skyggemodellene i en mellomrepresentasjon av SPIR-V. Støtter toppunkt, piksel, tessellasjon, beregning og enkel geometriskyggelegging, rotsignaturserialisering og deserialisering.
Aritmetiske, atom- og bitoperasjoner, sammenlignings- og dataflytkontrolloperatører, sample, samle og laste instruksjoner, ut-av-ordre tilgangsoperasjoner (UAV, out-of-order tilgangsvisning) implementeres fra skyggeinstruksjoner.
De viktigste nye funksjonene i vkd3d 1.7
I denne nye versjonen som presenteres av vkd3d 1.7 skiller seg ut éJeg fortsatte arbeidet med å forbedre HLSL shader-kompilatoren (High-Level Shader Language), samt legge til muligheten til å kalle brukerdefinerte funksjoner og bruke arrays som parametere for brukerdefinerte funksjoner.
En annen av endringene som skiller seg ut i den nye versjonen er betydelig forbedret støtte for profiler shader modell Direct3D 1/2/3, La også til startstøtte for flytende kommatyper med lav presisjon som min16float.
Det fremheves også at lagt til støtte for parametere SV_DispatchThreadID, SV_GroupID og SV_GroupThreadID og at en offentlig API er lagt til for å analysere (vkd3d_shader_parse_dxbc) og serialisere (vkd3d_shader_serialize_dxbc) DXBC binære data.
Av andre endringer som skiller seg ut av den nye versjonen:
- Støtte for den valgfrie "offset"-parameteren til Load()-teksturobjektet
metode. - Støtte for den iboende funksjonen all().
- Støtte for den indre funksjonen avstand().
- Støtte for de iboende funksjonene exp() og exp2().
- Støtte for frac() egenfunksjonen.
- Støtte for den iboende funksjonen lit().
- Støtte for den iboende funksjonen reflect().
- Støtte for de iboende funksjonene sin() og cos().
- Støtte for den indre funksjonen smoothstep().
- Støtte for iboende sqrt()- og rsqrt()-funksjoner.
- Støtte for step() iboende funksjon.
- Støtte for den iboende funksjonen transpose().
- Støtte for store og små bokstaver av float- og dword-data
typen - Delvis støtte for datatyper med minimum presisjon som "min16float". Disse tolkes for tiden som deres vanlige motstykker.
Forbedret støtte for konstant forplantning, spesielt til konstant forplantning via swizzles. - Kompileringsalternativet VKD3D_SHADER_COMPILE_OPTION_WRITE_TESS_GEOM_POINT_SIZE kan brukes til å spesifisere om SPIR-V shaders rettet mot Vulkan-miljøer skal skrive punktstørrelser for geometri og tessellation shaders hvis ikke spesifisert, punktstørrelsene vil bli skrevet.
Endelig, For de som er interessert i å vite mer om det, bør de vite at prosjektkoden er lisensiert under LGPLv2.1 og at de kan se detaljene i denne nye utgivelsen I den følgende lenken.
Hvordan installere vkd3d 1.7?
For interessert i å kunne installere vkd3d De må vite at de må kompilere kildekoden, så vi må skaffe den først, det er viktig å nevne at Vkd3d er avhengig av SPIRV-Headers og Vulkan-Headers (>= 1.2.139).
For å utføre kompileringen må vi åpne en terminal og i den skriver vi følgende kommando:
git clone https://gitlab.winehq.org/wine/vkd3d.git
Når dette er gjort, fortsetter vi å gå inn i den nylig nedlastede katalogen med:
cd vkd3d
Og vi fortsetter å kompilere ved å utføre følgende kommandoer:
./configure make make install
Si du vil vite mer om kompilasjonen av vkd3d kan du sjekke detaljene i denne lenken.