Projekt Wine objavio je izdanja paketa vkd3d 1.12 s implementacijom Direct3D 12 koja radi putem prevođenja poziva u grafički API Vulkan. Paket uključuje biblioteke libvkd3d s implementacijom Direct3D 12, libvkd3d-shader s prevoditeljem modela 4 i 5 shadera te libvkd3d-utils s funkcijama za olakšavanje portiranja aplikacija Direct3D 12, kao i set demonstracijskih primjera, uključujući port glxgears na Direct3D 12. Izvorni kod projekta distribuira se pod licencom LGPLv2.1.
Biblioteka libvkd3d podržava većinu mogućnosti Direct3D 12, uključujući alate za grafiku i izračune, redove i liste naredbi, deskriptore i deskriptore hrpe, korijene potpisa, neuređeni pristup, uzorkivače, potpise naredbi, korijenske konstante, neizravno (indirect) renderiranje, metode Clear*() i Copy*(). U libvkd3d-shader implementirana je translacija bajtkoda modela šejdera u međurezultantno predstavljanje SPIR-V. Podržani su vršni, pikselni, tesselacijski, izračunski i prosti geometrijski šejderi, serijalizacija i deserializacija korijenskog potpisa. Od šejderskih instrukcija implementirane su aritmetičke, atomske i bitne operacije, operatori usporedbe i upravljanja tokom prijenosa podataka, instrukcije sample, gather i load, operacije neurednog pristupa (UAV, Unordered Access View).
U novoj verziji:
- U HLSL prevoditelju dodana je podrška za izravno prevođenje u asembler kod shadera Direct3D i ciljne tipove SPIR-V.
- U prevoditelju HLSL poboljšana je podrška za profile modela shadera 1, 2 i 3.
- Za HLSL implementirane su ugrađene funkcije cosh(), determinant(), refract(), sinh() i tanh().
- U libvkd3d dodana je podrška za formate DXGI_FORMAT_B5G6R5_UNORM, DXGI_FORMAT_B5G5R5A1_UNORM i DXGI_FORMAT_B4G4R4A4_UNORM, ako su podržani u postojećoj implementaciji API-ja Vulkan.
- Dodana je podrška za sučelja ID3D12ShaderCacheSession i ID3D12Device9. U sučelje ID3D12Device8 dodane su metode CreateCommittedResource2(), CreatePlacedResource1(), GetCopyableFootprints1() i GetResourceAllocationInfo2().
- Implementirani su provjerni upiti D3D12_FEATURE_D3D12_OPTIONS14, D3D12_FEATURE_D3D12_OPTIONS15, D3D12_FEATURE_D3D12_OPTIONS16, D3D12_FEATURE_D3D12_OPTIONS17 i D3D12_FEATURE_D3D12_OPTIONS18.
- U libvkd3d-shader za međulanguage DXIL (DirectX Intermediate Language) dodana je eksperimentalna podrška za većinu metoda i instrukcija 6 modela shadera Direct3D.
Izvor: opennet.ru
