Vinprosjekt publisert Vkd3d 1.7 med Direct3D 12 implementering

Wine-prosjektet har publisert utgivelsen av vkd3d 1.7-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 beregningsfasiliteter, 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:

  • Arbeidet fortsatte med å forbedre shader-kompilatoren i HLSL (High-Level Shader Language):
    • Lagt til muligheten til å kalle egendefinerte funksjoner og bruke arrays som parametere til egendefinerte funksjoner.
    • Lagt til støtte for parametere SV_DispatchThreadID, SV_GroupID og SV_GroupThreadID.
    • Lagt til innebygde funksjoner all(), distance(), exp(), exp2(), frac(), lit(), reflect(), sin(), cos(), smoothstep(), sqrt(), rsqrt () , step(), transponere().
    • Lagt til startstøtte for flytende kommatyper med lav presisjon som "min16float".
  • Betydelig forbedret støtte for Direct3D 1/2/3 shader-modellprofiler.
  • Lagt til offentlig API for parsing (vkd3d_shader_parse_dxbc) og serialisering (vkd3d_shader_serialize_dxbc) av DXBC binære data.

Kilde: opennet.ru

Legg til en kommentar