Efter ett och ett halvt Ärs utveckling har projektet Wine slÀppt paketversion 1.3 av vkd3d med implementering av Direct3D 12, som fungerar genom att översÀtta anrop till grafik-API:et Vulkan. Paketet inkluderar biblioteken libvkd3d med implementeringer 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 verktyg för grafik och berÀkningar, köer och kommandon, deskriptorer och heapedeskriptorer, rot-signaturer, oordnad Ätkomst, samplare, kommandosignaturer, rotkonstanter, indirekt rendering, metoder Clear*() och Copy*().
I libvkd3d-shader har sökningen av bytekod för shader-modeller 4 och 5 implementerats till ett mellanliggande format SPIR-V. Vertex-, pixel-, tesselerings-, berÀknings- och enkla geometriska shadrar, samt serialisering och deserialisering av rot-signaturer stöds. Bland shader-instruktionerna finns aritmetiska, atomÀra och bitoperationer, jÀmförelse- och flödeskontrolloperatorer, instruktioner för sample, gather och load, samt operationer för oordnad Ätkomst (UAV, Unordered Access View).
Bland de mest betydande nyheterna i Vkd3d 1.3 finns:
- Inledande stöd för kompilering och förbearbetning av shadere skrivna i HLSL (High-Level Shader Language), som tillhandahÄlls frÄn och med DirectX 9.0, har lagts till.
- Stöd för arrayer av deskriptorer definierade i shader-modellen 5.1 har lagts till.
- Stöd för operationer med dubbel precision flyttal i shadere, indirekt adressering för tesselerings-shadere, export av stenciler frĂ„n shadere, modifieraren âpreciseâ för shadere och globala barriĂ€rer för resurser i minnet har sĂ€kerstĂ€llts.
- Möjligheten att disassemblåra Direct3D-shadere frÄn bytekod till assemblerrepresentation har implementerats.
- Stöd för att analysera det gamla formatet för bytekod i Direct3D, som anvÀnds i shader-modellerna 1, 2 och 3, har lagts till.
- I libvkd3d har funktioner för Direct3D 12, sÄsom rot-signaturer, rÀknare för oordnad Ätkomst, logiska sammanslagningsoperatorer för utdata, och texturadressiering i lÀget mirror_once lagts till. Strukturen vkd3d_host_time_domain_info har lagts till.
KĂ€lla: opennet.ru
