Projekat Wine je objavio izdanje paketa vkd3d 1.4 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:
- Внесены многочисленные улучшения в компилятор шейдеров на языке HLSL (High-Level Shader Language), предоставляемом начиная с DirectX 9.0.
- Предложена новая реализация кучи дескрипторов (Descriptor Heap), использующая Vulkan-расширение VK_EXT_descriptor_indexing.
- Добавлена новая реализация границ (fence), основанная на Vulkan-расширении K_KHR_timeline_semaphore.
izvor: opennet.ru