Wine-projekti julkaisi Vkd3d 1.3:n Direct3D 12 -toteutuksella

Puolentoista vuoden kehitystyön jälkeen Wine-projekti on julkaissut vkd3d 1.3 -paketin Direct3D 12 -toteutuksella, joka toimii lähetyskutsujen kautta Vulkan-grafiikkasovellusliittymälle. Paketti sisältää libvkd3d-kirjastoja Direct3D 12 -toteutuksineen, libvkd3d-shaderin Shader-mallien 4 ja 5 kääntäjällä ja libvkd3d-utilit toiminnoilla, jotka yksinkertaistavat Direct3D 12 -sovellusten siirtoa, sekä joukon esimerkkejä, mukaan lukien portti. glxgearsistä Direct3D 12:een. Projektikoodi on jaettu LGPLv2.1-lisenssillä.

Libvkd3d-kirjasto tukee useimpia Direct3D 12 -ominaisuuksia, mukaan lukien grafiikka- ja laskentatoiminnot, jonot ja komentoluettelot, kahvat ja kasakahvat, juuriallekirjoitukset, käyttöhäiriöt, näytteenottolaitteet, komentoallekirjoitukset, juurivakiot, epäsuora renderöinti, Clear method *( ) ja Kopioi*().

Libvkd3d-shaderissa Shader-mallien 4 ja 5 tavukoodin käännös on toteutettu SPIR-V-väliesityksenä. Vertex, pikseli, tessellaatio, laskeminen ja yksinkertaiset geometrian varjostimet, juuriallekirjoituksen serialisointi ja deserialisointi ovat tuettuja. Shader-käskyt sisältävät aritmeettisia, atomi- ja bittioperaatioita, vertailu- ja tietovirran ohjausoperaattoreita, näyte-, keräys- ja latauskäskyjä, järjestämättömät pääsytoiminnot (UAV, Unordered Access View).

Vkd3d 1.3:n merkittävimpiä innovaatioita ovat:

  • Lisätty alustava tuki varjostimien kääntämiseen ja esikäsittelyyn HLSL:ssä (High-Level Shader Language), joka toimitetaan DirectX 9.0:sta alkaen.
  • Lisätty tuki 5.1-shader-mallissa määritellyille kuvaajille.
  • Tarjoaa tuen kaksinkertaisen tarkkuuden liukulukuoperaatioille varjostimissa, epäsuoralle osoittelemiselle tessellation-varjostimille, stensiilien viennille varjostimista, "tarkan" varjostimen muokkauksen ja muistiresurssien globaaleja esteitä.
  • Mahdollisuus purkaa Direct3D-varjostimet tavukoodista kokoonpanoesitykseen on otettu käyttöön.
  • Lisätty tuki vanhan Direct3D-tavukoodimuodon jäsentämiseen, jota käytetään Direct3D 1, 2 ja 3 Shader -malleissa.
  • libvkd3d lisää Direct3D 12 -ominaisuuksia, kuten juuriallekirjoituksia, epäjärjestyksessä näkyviä laskureita, loogisia yhdistämisoperaattoreita tulostukseen ja mirror_once-tekstuurin osoitustilan. Lisätty vkd3d_host_time_domain_info-rakenne.

Lähde: opennet.ru

Lisää kommentti