Wine-projektet har publicerat version 1.17 av paketet vkd3d med implementeringen av Direct3D 12, som fungerar genom att översÀtta anrop till grafiska API:t Vulkan. Paketet innehÄller biblioteken libvkd3d med implementeringen av Direct3D 12, libvkd3d-shader med en översÀttare för shader-modeller 4 och 5, samt libvkd3d-utils med funktioner för att förenkla portningen av Direct3D 12-applikationer, samt en uppsÀttning demonstrations exempel, inklusive portningen av glxgears till Direct3D 12. Koden för projektet distribueras under LGPLv2.1-licensen.
Biblioteket libvkd3d stöder de flesta funktioner i Direct3D 12, inklusive grafik- och berÀkningsverktyg, köer och kommandolistor, deskriptorer och heap-deskriptorer, rot-signer, oordnad Ätkomst, Samplrar, kommandosignaturer, rot-konstanter, indirekt rendering, Clear*()- och Copy*()-metoder. I libvkd3d-shader finns det en översÀttning av shadermodeller till det mellanliggande formatet SPIR-V. Det stöder vertex-, pixel-, tessellations-, compute- och enkla geometriska shaders, serialization och deserialization av rot-signaturer. FrÄn shaderinstruktionerna finns det stöd för aritmetiska, atomÀra och bitoperationer, jÀmförelseoperatorer och kontroll av datarutten, samt instruktioner för sample, gather och load, och operationer för oordnad Ätkomst (UAV, Unordered Access View).
I den nya versionen:
- Implementeringen av shadersprÄket HLSL har fÄtt inledande stöd för delat minne för trÄdsgrupper, utökat stöd för geometriska shaderar och en parser för resurser StructuredBuffer.
- Utvecklingen av implementeringen av shadersprÄket MSL (Metal Shading Language), som anvÀnds av Apple i det grafiska API:t Metal, har fortsatt. Till exempel har stöd för loopar, indirekt adressering av konstanta buffertar, textursampling och olika operationer för heltalsaritmetik och jÀmförelse lagts till i MSL.
- I biblioteket libvkd3d har metoden EnumerateMetaCommands() lagts till i implementeringen av grÀnssnittet ID3D12Device5.
- En ny typ av shader "tx" (VKD3D_SHADER_SOURCE_TX) har lagts till, som anvÀnds för att ladda texturbehandlingsshaders.
KĂ€lla: opennet.ru
