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

Wine-projekti on julkaissut vkd3d 1.7 -paketin Direct3D 12 -toteutuksen kanssa, joka toimii lähettämällä kutsuja 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 laskentatilat, jonot ja komentoluettelot, kahvat ja kasakahvat, juuriallekirjoitukset, epäjärjestyksessä käyttö, Samplerit, 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ä. Tukee vertexiä, pikseliä, tessellaatiota, laskentaa ja yksinkertaisia ​​geometrian varjostimia, juuriallekirjoituksen serialisointia ja deserialisointia. 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).

Uudessa versiossa:

  • Työtä jatkettiin varjostimen kääntäjän parantamiseksi HLSL:ssä (High-Level Shader Language):
    • Lisätty mahdollisuus kutsua mukautettuja toimintoja ja käyttää taulukoita parametreina mukautetuille funktioille.
    • Lisätty tuki parametreille SV_DispatchThreadID, SV_GroupID ja SV_GroupThreadID.
    • Lisätty sisäänrakennetut funktiot all(), distance(), exp(), exp2(), frac(), lit(), reflect(), sin(), cos(), smoothstep(), sqrt(), rsqrt () , vaihe(), transponoida().
    • Lisätty alustava tuki matalan tarkkuuden liukulukutyypeille, kuten "min16float".
  • Merkittävästi parannettu tuki Direct3D 1/2/3 Shader -malliprofiileille.
  • Lisätty julkinen API DXBC-binaaritietojen jäsentämiseen (vkd3d_shader_parse_dxbc) ja sarjoitukseen (vkd3d_shader_serialize_dxbc).

Lähde: opennet.ru

Lisää kommentti