vkd3d 1.2 kommer med forbedringer av kompatibilitet, skyggelegging og mer

Wine-prosjektet har gitt ut en ny versjon av vkd3d 1.2-pakken med en Direct3D 12-implementering som fungerer ved å oversette kall til Vulkan-grafikk-API-et.

Denne nye versjonen av vkd3d 1.2 inneholder flere forbedringer, men de viktigste som skiller seg ut er tilgjengeligheten av libvkd3d-shader som et offentlig bibliotek , støtte for tessellation-shadere, samt støtte for stream-utgang.

Pakken inkluderer libvkd3d-biblioteket med Direct3D 12-implementeringer, libvkd3d-shader-biblioteket med en shader-oversetter for modell 4 og 5, og libvkd3d-utils-biblioteket med funksjoner for å forenkle migreringen av Direct3D 12-applikasjoner, samt et sett med demoer, inkludert glxgears-porten til Direct3D 12. Prosjektkoden distribueres under LGPLv2.1-lisensen.

libvkd3d-biblioteket støtter de fleste Direct3D 12-funksjonene, inkludert grafikk- og beregningsfunksjoner, kommandolister og køer, deskriptorer og heap-deskriptorer, rotsignaturer, uordnet tilgang, samplere, kommandosignaturer, rotkonstanter, indirekte gjengivelse, osv.

Libvkd3d-shader implementerer oversettelsen av bytekode 4 og 5 av shadermodeller til den mellomliggende SPIR-V-representasjonen. Nokpunkter, piksler, tessellasjon, shadere for enkel og beregningsmessig geometri, rotsignaturserialisering og deserialisering støttes.

Shader-instruksjoner inkluderer aritmetiske, atomære og bit-for-bit-operasjoner, dataflytkontroll- og sammenligningsoperatorer, samplings-, innsamlings- og lasteinstruksjoner, og uordnede tilgangsoperasjoner (UAV, Unordered Access View).

På dette utviklingsstadiet er ikke alle Direct3D 12-kall implementert , og testingen ble primært utført på et sett med demoapplikasjoner. Denne utgivelsen inkluderer ikke funksjoner under utvikling, som støtte for tessellasjon og shadere for kompleks geometri, samt flere forbedringer relatert til shadere og sentrale Direct3D 12-metoder. Disse funksjonene vil bli tilbudt i en fremtidig utgivelse.

De viktigste nye funksjonene i Vkd3d 1.2

En av de viktigste endringene i den nye versjonen er tilgjengeligheten av libvkd3d-shader-biblioteket for bruk i tredjepartsprosjekter, ettersom flere Direct3D 12-funksjoner er lagt til, for eksempel:

  • Multi-prøvetaking.
  • Reserverte ressurser.
  • Forekomst av forekomstdata.
  • API for "private data" for alle grensesnitt.
  • Komponenttilordning for Shader-ressursvisning.
  • VK_KHR_draw_indirect_count utvidelse.
  • Predikat / betinget representasjon.
  • Gjengivelse av dybde uten piksler.
  • Dybdeskjæring. Dette krever utvidelsen VK_EXT_depth_clip_enable.
  • Kast rasterizer.
  • Dobbel kildeblanding.
  • Kartlegging av plasserte ressurser.
  • Metodene ReadFromSubresource () og WriteToSubresource () ID3D12Resource.
  • Samtidig tilgang til ressurser med flere køer.
  • Null utsikt. Det vil si synspunkter uten en underliggende ressurs.
  • Flere flere funksjoner støtter henvendelser.

I tillegg til dette er den ekstra støtten for konvertering, serialisering og deserialisering av rotsignaturer (vkd3d_serialize_versioned_root_signature() og vkd3d_create_versioned_root_signature_deserializer()) også verdt å merke seg , samt støtten for strømming av utdata.

En annen bemerkelsesverdig endring er implementeringen av miljøvariabler: VKD3D_CONFIG for å angi alternativer for å endre oppførselen til libvkd3d og VKD3D_VULKAN_DEVICE for å overstyre enheten for Vulkan API.

I tillegg ble det lagt til støtte for skyggeleggingsinstruksjonene bufinfo, eval_centroid, eval_sample_index, ld2ms, sample_b, sample_d, sample_info, samplepos og foreløpig støtte for modell 5.1-shadere.

Og også støtte for OpenGL SPIR-V målmiljøer. Dette gjør at SPIR-V produsert av libvkd3d-shader kan brukes med GL_ARB_gl_spirv. Dette inkluderer støtte for OpenGL atomdisker og kombinerte samplere.

Til slutt, hvis du vil vite mer om denne nye versjonen, kan du se den fullstendige listen over endringer på følgende lenke.

Hvordan installere vkd3d på Linux?

For de som er interessert i å kunne installere vkd3d på systemet sitt, bør de skaffe kildekoden og fortsette med kompilering, selv om de for praktiske formål eller for de nybegynnere kan prøve dette biblioteket uten mye anstrengelse. For dette trenger de bare å installere lutris og innenfor konfigurasjonene.

Når det gjelder de som er interessert i kompilering, må de skaffe koden med:

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

Til slutt må Vulkan-lagene være aktivert:

export VK_INSTANCE_LAYERS=VK_LAYER_LUNARG_standard_validation
VKD3D_CONFIG=vk_debug


Legg til som foretrukket kilde i Google