Projekat Wine je objavio izdanje paketa vkd3d 1.5 sa implementacijom Direct3D 12 koji 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čunarske mogućnosti, redove i liste komandi, ručke i heap ručke, korijenske potpise, pristup van redoslijeda, uzorke, potpise naredbi, korijenske konstante, indirektno prikazivanje, Clear metode *( ) i Kopiraj*().
libvkd3d-shader implementira prevođenje bajtkoda shader modela 4 i 5 u srednju SPIR-V reprezentaciju. Podržava temenske, pikselne, teselacijske, računarske i jednostavne geometrijske shadere, serijalizaciju korijenskog potpisa i deserializaciju. 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).
U novoj verziji:
- Brojna poboljšanja su napravljena na HLSL (High-Level Shader Language) kompajleru shadera koji se pruža od DirectX 9.0. Uključujući poboljšanu podršku za tipove HLSL objekata kao što je Texture2D u strukturama i nizovima, dodanu podršku za ugrađene funkcije dot(), ldexp() i lerp(), dodanu podršku za logičke operatore “and”, “or” za modele shadera 4 i 5 i “not”, kao i mogućnost izvođenja Booleovih tipova.
- Implementirana je opcija VKD3D_SHADER_COMPILE_OPTION_TYPED_UAV za učitavanje neuređenog pristupa pristupa (UAV) za SPIR-V višedijelne formate (DXGI_FORMAT).
izvor: opennet.ru