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

Wine-prosjektet har publisert utgivelsen av vkd3d 1.4-pakken med en implementering av Direct3D 12 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. Prosjektkoden er distribuert lisensiert under LGPLv2.1.

Libvkd3d-biblioteket støtter de fleste Direct3D 12-funksjoner, inkludert grafikk- og databehandlingsfasiliteter, køer og kommandolister, håndtak og heap-håndtak, rotsignaturer, tilgang utenfor rekkefølge, samplere, kommandosignaturer, rotkonstanter, indirekte gjengivelse, klare metoder *( ) og Copy*().

I libvkd3d-shader implementeres oversettelsen av bytekode for shader-modellene 4 og 5 til en mellomliggende SPIR-V-representasjon. Støtter toppunkt, piksel, tessellasjon, beregning og enkel geometriskyggelegging, rotsignaturserialisering og deserialisering. Shader-instruksjoner inkluderer aritmetiske, atom- og bitoperasjoner, sammenlignings- og dataflytkontrolloperatører, sample, samle og laste instruksjoner, uordnede tilgangsoperasjoner (UAV, Unordered Access View).

I den nye versjonen:

  • Tallrike forbedringer har blitt gjort til HLSL (High-Level Shader Language) shader-kompilatoren levert siden DirectX 9.0.
  • En ny implementering av Descriptor Heap er foreslått ved bruk av Vulkan-utvidelsen VK_EXT_descriptor_indexing.
  • Lagt til en ny gjerdeimplementering basert på Vulkan-utvidelsen K_KHR_timeline_semaphore.

Kilde: opennet.ru

Legg til en kommentar