Vinprosjektet kunngjorde for noen dager siden utgivelse av ny versjon av vkd3d 1.11-pakken, en versjon der det er introdusert forbedringer i bruken av vulkanutvidelser, samt støtteforbedringer, nye funksjoner og mer.
For de som ikke vet om Vkd3d, bør du vite at dette er en pakke som tilbyr en Direct3D 12-implementering ved å bruke kall til Vulkan graphics API og inkluderer flere nøkkelbiblioteker. Libvkd3d-biblioteket inneholder implementeringer av Direct3D 12, som dekker et bredt spekter av funksjoner som databehandling og grafikk, kommandokøer og lister, identifikatorer, blant andre.
Libvkd3d-shader-biblioteket er også tilgjengelig som gir en oversetter for shader-modeller 4 og 5 til en mellomliggende SPIR-V-representasjon. Dette biblioteket støtter toppunkt, piksel, tessellasjon, beregning og enkel geometriskyggelegging, samt rotsignaturserialisering og deserialisering.
Hva er nytt i vkd3d 1.11?
Vkd3d 1.11 introduserer en innledende støtte for kompilering av eldre Direct3D-bytekode i en mellomrepresentasjon av SPIR-V shaders, så vel som sinnledende støtte med HLSL p-kompilatorenå kompilere effektprofiler.
En annen forbedring som presenteres i denne nye versjonen er eksperimentell støtte for kompilering av DXIL (DirectX mellomspråk) i SPIR-V-representasjonen, og gir nye muligheter for utvikling av Direct3D-applikasjoner. Denne funksjonen krever kompilering av vkd3d med "preprocessor"-alternativet-DVKD3D_SHADER_UNSUPPORTED_DXIL' og regnes som eksperimentell.
også bruken av grupper og deskriptorsett har blitt optimalisert når utvidelser er tilgjengelige VK_EXT_mutable_descriptor_type og VK_EXT_shader_viewport_index_layer, som er gitt for å forbedre effektiviteten ved å arbeide med deskriptorpoolen og øke hastigheten på gjengivelsen av tessellasjons- og vertex shader-arrays.
C-en er implementertStøtte for standard kantfarger, som svart og hvitt og metoden er implementert GetResourceAllocationInfo1() av ID3D12Device4-grensesnittet, samt støtte for ID3D12Device7 og ID3D12Resource2-grensesnittene.
Flere nye funksjonsspørringer støttes, inkludert D3D12_FEATURE_D3D12_OPTIONS6 a D3D12_FEATURE_D3D12_OPTIONS13.
Har blitt implementert alternativer for nybygg: VKD3D_SHADER_COMPILE_OPTION_FEATURE kan brukes til
spesifiser funksjonene som er tilgjengelige i målmiljøet, mens VKD3D_SHADER_COMPILE_OPTION_FEATURE_INT64 indikerer kompatibilitet med
64-bits heltallstyper i SPIR-målmiljøet og VKD3D_SHADER_COMPILE_OPTION_FEATURE_FLOAT64 indikerer kompatibilitet med
64-bits flytepunkttyper i SPIR-V-målmiljøet.
Av andre endringer som skiller seg ut av denne nye versjonen:
- Deskriptoroppdateringer skjer nå asynkront på en intern arbeidstråd, og forbedrer ytelsen i applikasjoner som oppdaterer mange deskriptorer per ramme.
- Nye funksjoner er lagt til for SPIR-V-måltypen, inkludert støtte for globalt konsistente tilgangsvisninger som ikke er i orden, barrierer for tilgangsvisninger som ikke er i orden, og mer.
- ID3D12Device7-grensesnitt støttes.
- Minimum påkrevd versjon av Vulkan-Headers for denne utgivelsen er versjon
1.3.228. - ID3D12Resource2-grensesnittet støttes.
- Flere nye funksjonsspørringer støttes:
– D3D12_FEATURE_D3D12_OPTIONS6
– D3D12_FEATURE_D3D12_OPTIONS7
– D3D12_FEATURE_D3D12_OPTIONS8
– D3D12_FEATURE_D3D12_OPTIONS9
– D3D12_FEATURE_D3D12_OPTIONS10
– D3D12_FEATURE_D3D12_OPTIONS11
– D3D12_FEATURE_D3D12_OPTIONS12
– D3D12_FEATURE_D3D12_OPTIONS13 - De iboende funksjonene acos(), asin(), atan() og atan2() støttes allerede.
- Eksplisitt registertilordning ved å bruke 'register()' nøkkelord
- Konvertering fra heltallstyper til flytende punkt i shader-modellprofiler 1-3.
For de som er interessert i å lære mer om det, bør du vite at prosjektkoden er distribuert under LGPL 2.1, og du kan se detaljene i denne nye utgivelsen I den følgende lenken.
Hvordan installere vkd3d 1.11?
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.3.228).
Kompileringen er ganske enkel, og for å gjøre dette må vi åpne en terminal der vi skal skrive følgende kommando:
git clone https://gitlab.winehq.org/wine/vkd3d.git
Vi fortsetter med å gå inn i mappen der den ble lastet ned 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.