Wine-prosjektet har gitt ut Vkd3d 1.2 med Direct3D 12-implementering

Vinprosjekt publisert pakkeutgivelse vkd3d 1.2 med en Direct3D 12-implementering som fungerer gjennom kringkastingsanrop til Vulkan graphics API. Pakken inkluderer libvkd3d-biblioteker med implementeringer av Direct3D 12, libvkd3d-shader med en oversetter av shader-modeller 4 og 5 og libvkd3d-utils med funksjoner for å forenkle porteringen av Direct3D 12-applikasjoner, samt et sett med demo-eksempler, inkludert en port av glxgears til Direct3D 12. Prosjektkode distribuert av lisensiert under LGPLv2.1.

libvkd3d bibliotek støtter De fleste funksjonene i Direct3D 12, inkludert grafikk- og databehandlingsfasiliteter, køer og kommandolister, håndtak og heap-håndtak, rotsignaturer, tilgang utenfor rekkefølge, samplere, kommandosignaturer, rotkonstanter, indirekte gjengivelse, Clear*()-metoder og Kopier*().

I libvkd3d-shader implementeres oversettelsen av bytekode for shader-modellene 4 og 5 til en mellomliggende SPIR-V-representasjon. Vertex, pixel, tessellation, databehandling og enkel geometri shaders, rotsignaturserialisering og deserialisering støttes. Shader-instruksjoner inkluderer aritmetiske, atom- og bitoperasjoner, sammenlignings- og dataflytkontrolloperatører, sample, samle og laste instruksjoner, uordnede tilgangsoperasjoner (UAV, Unordered Access View).

Blant de mest betydningsfulle innovasjoner i Vkd3d 1.2 er følgende uthevet:

  • Libvkd3d-shader-biblioteket er klart for bruk i tredjepartsprosjekter.
  • Tessellation shader støtte.
  • Støtte for konvertering, serialisering og deserialisering av rotsignaturer (vkd3d_serialize_versioned_root_signature() og vkd3d_create_versioned_root_signature_deserializer()).
  • Støtte for streaming-utgang.
  • Implementering av mange tidligere utilgjengelige Direct3D 12-funksjoner, inkludert støtte for multisampling, ressursreservasjon,
    indirekte indeksert gjengivelse, dybdegjengivelse uten pikselskyggelegging, samtidig tilgang til ressurser fra forskjellige kommandokøer, Null-visninger.

  • Lagt til miljøvariabler: VKD3D_CONFIG for å angi alternativer for å endre libvkd3d-atferd og VKD3D_VULKAN_DEVICE for å overstyre enheten for Vulkan API.
  • Lagt til støtte for buffinfo shader-instruksjoner,
    eval_centroid,
    eval_sample_index,
    ld2ms,
    sample_b,
    sample_d,
    sample_info,
    samplepos.

Kilde: opennet.ru

Legg til en kommentar