Wine-projektet har publicerat version 1.12 av vkd3d-paketet med en implementation av Direct3D 12, som fungerar genom att översÀtta anrop till Vulkan-grafik-API:et. Paketet innehÄller biblioteken libvkd3d med implementationer av Direct3D 12, libvkd3d-shader med översÀttare för shadermodeller av 4 och 5 samt libvkd3d-utils med funktioner för att underlÀtta portering av Direct3D 12-applikationer, samt en uppsÀttning demonstrationsexempel, inklusive portningen av glxgears till Direct3D 12. Projektets kod distribueras under LGPLv2.1-licensen.
Biblioteket libvkd3d stöder de flesta funktionerna i Direct3D 12, inklusive verktyg för grafik och berÀkningar, köer och kommandolister, deskriptorer och stapeldeskriptorer, rot-signaturer, osorterad Ätkomst, Sampler-ar, kommandosignaturer, rot-konstanter, indirekt rendering, samt metoderna Clear*() och Copy*(). I libvkd3d-shader har translatörerna för shader-modeller implementerat översÀttning av bytekod till mellankod i SPIR-V. Vertex-, pixel-, tessellations-, compute- och geometriska shaders stöds, liksom serialisering och deserialisering av rot-signaturer. Bland shader-instruktionerna implementeras aritmetiska, atomÀra och bitoperationer, jÀmförelse- och kontrollflödesoperatörer, samt instruktionerna sample, gather och load, och operationerna för osorterad Ätkomst (UAV, Unordered Access View).
I den nya versionen:
- HLSL-kompilatorn har fÄtt stöd för direkt kompilering till assemblerkod för Direct3D-shaders och mÄltyper för SPIR-V.
- I HLSL-kompilatorn har stödet för profiler av shadermodeller 1, 2 och 3 förbÀttrats.
- För HLSL har inbyggda funktioner som cosh(), determinant(), refract(), sinh() och tanh() implementerats.
- Stöd för formaten DXGI_FORMAT_B5G6R5_UNORM, DXGI_FORMAT_B5G5R5A1_UNORM och DXGI_FORMAT_B4G4R4A4_UNORM har lagts till i libvkd3d om de stöds i den befintliga Vulkan API-implementeringen.
- Stöd för grÀnssnitten ID3D12ShaderCacheSession och ID3D12Device9 har lagts till. Metoderna CreateCommittedResource2(), CreatePlacedResource1(), GetCopyableFootprints1() och GetResourceAllocationInfo2() har lagts till i grÀnssnittet ID3D12Device8.
- VerifieringsförfrÄgningar D3D12_FEATURE_D3D12_OPTIONS14, D3D12_FEATURE_D3D12_OPTIONS15, D3D12_FEATURE_D3D12_OPTIONS16, D3D12_FEATURE_D3D12_OPTIONS17 och D3D12_FEATURE_D3D12_OPTIONS18 har implementerats.
- I libvkd3d-shader har experimentellt stöd för de flesta metoder och instruktioner i shadermodell 6 i DXIL (DirectX Intermediate Language) lagts till.
KĂ€lla: opennet.ru
