Wine project je objavio Vkd3d 1.3 sa Direct3D 12 implementacijom

Nakon godinu i po dana razvoja, projekat Wine je objavio izdanje paketa vkd3d 1.3 sa Direct3D 12 implementacijom koja radi putem emitovanja poziva na Vulkan grafički API. Paket uključuje libvkd3d biblioteke sa implementacijama Direct3D 12, libvkd3d-shader sa prevodiocem shader modela 4 i 5 i libvkd3d-utils sa funkcijama za pojednostavljenje prenosa Direct3D 12 aplikacija, kao i skup demo primjera, uključujući port od glxgears u Direct3D 12. Projektni kod se distribuira pod licencom LGPLv2.1.

Biblioteka libvkd3d podržava većinu Direct3D 12 funkcija, uključujući grafičke i računske mogućnosti, redove i liste komandi, ručke i heap ručke, korijenske potpise, pristup van redoslijeda, uzorke, potpise naredbi, korijenske konstante, indirektno renderiranje, Clear metode *( ) i Kopiraj*().

U libvkd3d-shaderu implementirano je prevođenje bajtkoda shader modela 4 i 5 u srednju SPIR-V reprezentaciju. Podržani su vrhovi, piksel, teselacija, računarski i jednostavni geometrijski shaderi, serijalizacija korijenskog potpisa i deserializacija. Instrukcije shadera uključuju aritmetičke, atomske i bitne operacije, operatore poređenja i kontrole protoka podataka, instrukcije uzorka, prikupljanja i učitavanja, operacije neuređenog pristupa (UAV, Unordered Access View).

Među najznačajnijim inovacijama u Vkd3d 1.3 su:

  • Dodata početna podrška za kompajliranje i pretprocesiranje shadera u HLSL-u (High-Level Shader Language), počevši od DirectX 9.0.
  • Dodata podrška za nizove deskriptora definisanih u 5.1 modelu shadera.
  • Pruža podršku za operacije s pomičnim zarezom dvostruke preciznosti u shaderima, indirektno adresiranje za teselacijske shadere, izvoz šablona iz shadera, "precizan" modifikator shadera i globalne barijere memorijskim resursima.
  • Implementirana je mogućnost rastavljanja Direct3D shadera iz bajtkoda u reprezentaciju sklopa.
  • Dodata podrška za raščlanjivanje starog Direct3D bytecode formata koji se koristi u Direct3D 1, 2 i 3 shader modelima.
  • libvkd3d dodaje Direct3D 12 funkcije kao što su korijenski potpisi, brojači pregleda van reda, logički operatori spajanja za izlaz i mirror_once način adresiranja teksture. Dodata struktura vkd3d_host_time_domain_info.

izvor: opennet.ru

Dodajte komentar