A Wine projekt közzétette a vkd3d 1.12 csomag kiadását, amely a Direct3D 12-t valósítja meg a Vulkan grafikus API-ra történő hívás-transzláció révén. A csomag tartalmazza a libvkd3d könyvtárakat a Direct3D 12 megvalósításával, a libvkd3d-shader-t a 4. és 5. shader modellek fordítójával, valamint a libvkd3d-utils-t a Direct3D 12 alkalmazások portolásának megkönnyítésére, további példákat, beleértve a glxgears Direct3D 12-re portolt változatát. A projekt kódja az LGPLv2.1 licensz alatt terjesztendő.
A libvkd3d könyvtár a Direct3D 12 legtöbb funkcióját támogatja, beleértve a grafikai és számítási eszközöket, sorokat és parancslistákat, leírókat és tömbindikátorokat, gyökér szignatúrákat, rendezetlen hozzáférést, mintákat, parancsszignatúrákat, gyökér konstansokat, közvetett renderelést, valamint a Clear*() és Copy*() metódusokat. A libvkd3d-shader a shader modellek bytekódjának köztes képviseletbe való fordítását valósítja meg, amely támogatja a vertex, pixel, tesszellációs, számítási és egyszerű geometriai shader-eket, valamint a gyökér szignatúra sorozatát. A shader utasítások között megvalósították az aritmetikai, atomikus és bitmanipulációs műveleteket, összehasonlító operátorokat és az adatfolyam irányítását, mint például a sample, gather és load utasításokat, valamint a rendezetlen hozzáférés (UAV, Unordered Access View) műveleteit.
Az új verzióban:
- Az HLSL fordítóba bekerült a közvetlen fordítás támogatása a Direct3D shader kódassembler-be és a SPIR-V célformátumokhoz.
- Az HLSL fordítóban javult a 1-es, 2-es és 3-as shader modellek profiljainak támogatása.
- Az HLSL számára megvalósították a beépített függvényeket: cosh(), determinant(), refract(), sinh() és tanh().
- A libvkd3d könyvtárban bekerült a DXGI_FORMAT_B5G6R5_UNORM, DXGI_FORMAT_B5G5R5A1_UNORM és DXGI_FORMAT_B4G4R4A4_UNORM formátumok támogatása, ha azokat a meglévő Vulkan API implementációk támogatják.
- Megerősítették az ID3D12ShaderCacheSession és ID3D12Device9 interfészek támogatását. Az ID3D12Device8 interfészhez hozzáadták a CreateCommittedResource2(), CreatePlacedResource1(), GetCopyableFootprints1() és GetResourceAllocationInfo2() metódusokat.
- A D3D12_FEATURE_D3D12_OPTIONS14, D3D12_FEATURE_D3D12_OPTIONS15, D3D12_FEATURE_D3D12_OPTIONS16, D3D12_FEATURE_D3D12_OPTIONS17 és D3D12_FEATURE_D3D12_OPTIONS18 ellenőrző lekérdezései valósultak meg.
- A libvkd3d-shader-ben kísérleti támogatást kaptak a DXIL (DirectX Intermediate Language) köztes nyelvhez a legtöbb 6-os shader modell módszeréhez és utasításához.
Forrás: opennet.ru
