Testningen av den första kandidaten för releasen av Wine 8.0, den öppna implementationen av WinAPI, har påbörjats. Kodbasen har frysts inför releasen som förväntas i mitten av januari. Jämfört med releasen av Wine 7.22 har 52 buggrapporter stängts och 538 ändringar har gjorts.
De viktigaste ändringarna:
- Paketet vkd3d med implementationen av Direct3D 12, som fungerar genom att översätta anrop till grafiska API:et Vulkan, har uppdaterats till version 1.6.
- Systemanropstransformatorerna (thunk) för Vulkan och OpenGL har optimerats.
- I WinPrint har stödet för utskriftsprocessorer (Print processor) utökats.
- Förbättrad kontrollpanel med joystick.
- Arbetet med att säkerställa stöd för typen 'long' i printf-funktionen har avslutats.
- Buggrapporter relaterade till följande spel har stängts: Tom Clancy's Rainbow Six: Vegas 2, The Void, Ragnarok Online, Drakan, Star Wars, Colin McRae, X-COM.
- Buggrapporter relaterade till följande applikationer har stängts: TMUnlimiter 1.2.0.0, MDB Viewer Plus, Framemaker 8, Studio One Professional 5.
Det bör även nämnas att projektet Wine har publicerat paketet vkd3d 1.6 med implementationen av Direct3D 12, som fungerar genom att översätta anrop till grafiska API:et Vulkan. Paketet innehåller biblioteken libvkd3d för implementationen av Direct3D 12, libvkd3d-shader med översättaren för shader-modeller 4 och 5 samt libvkd3d-utils med funktioner för att förenkla portering av applikationer för Direct3D 12, samt ett set med demonstrations exempel, inklusive portningen av glxgears till Direct3D 12. Projektkoden distribueras under LGPLv2.1-licensen.
Biblioteket libvkd3d stöder det flesta funktioner av Direct3D 12, inklusive verktyg för grafik och beräkningar, köer och kommandolistor, deskriptorer och heap-deskriptorer, rotach-signaturer, oordnad åtkomst, samplrar, kommandosignaturer, rotkonstanter, indirekt rendering, Clear*()-metoder och Copy*(). I libvkd3d-shader har översättningen av shaderbytekod för modellerna 4 och 5 implementerats till det intermediära formatet SPIR-V. Stöd för vertex-, pixel-, tessellering-, compute- och passagerade geometriska shaders, samt serialisering och deserialisering av rotach-signatur. Från shaderinstruktionerna har aritmetiska, atomära och bitoperationer, jämförelse- och flödeskontrolloperatorer, sample-, gather- och load-instruktioner, samt operationer för oordnad åtkomst (UAV, Unordered Access View) implementerats.
I den nya versionen fortsätter arbetet med att förbättra shader-kompilatorn för HLSL (High-Level Shader Language) som erbjuds sedan DirectX 9.0. Bland förbättringarna relaterade till HLSL:
- Stödet för beräkningsshader har införts.
- Stödet för initiering och tilldelning av sammansatta objekt, som strukturer och arrayer, har förbättrats.
- Funktionen för att ladda och spara texturresurser med oordnad åtkomst (UAV) har lagts till.
- Stödet för funktionsattribut har lagts till och inbyggda funktioner som asuint(), length(), normalize() har implementerats.
- Stödet för moduler för flyttalsberäkningar har lagts till.
- Flaggan VKD3D_SHADER_DESCRIPTOR_INFO_FLAG_UAV_ATOMICS har implementerats för att indikera atomära operationer på deskriptorer för oordnad åtkomst (UAV).
Källa: opennet.ru
