Testningen af den første kandidat til Wine 9.0, den åbne implementering af WinAPI, er begyndt. Kildekoden er blevet fryset før udgivelsen, der forventes i anden halvdel af januar. I forhold til udgivelsen af Wine 8.21 er 52 fejlrapporter blevet lukket, og 391 ændringer er blevet foretaget.
De vigtigste ændringer:
- Den indbyggede vkd3d-pakke med implementeringen af Direct3D 12, der fungerer via opkaldstransformationer til grafisk API Vulkan, er blevet opdateret til version 1.10.
- Udviklingen af funktionalitet, der sigter mod at muliggøre brugen af Wine i miljøer baseret på Wayland-protokollen uden XWayland og X11-komponenter, er fortsat. Driveren winewayland.drv har fået tilføjet support for tastaturopsætninger. Støtten til det grafiske API Vulkan er udvidet, og funktionerne vkQueuePresentKHR, vkGetDeviceGroupSurfacePresentModesKHR, vkGetPhysicalDevicePresentRectanglesKHR er blevet tilføjet. Funktionen ClipCursor er blevet tilføjet, og muligheden for at arbejde med relative koordinater ved musens bevægelse er blevet implementeret.
- Der er implementeret support for DH (Diffie-Hellman) krypteringsnøgler ved brug af de nyeste GnuTLS-udgivelser.
- Fejlrapporter relateret til applikationer er blevet lukket: Notepad, MS Word, Roon, eFilm Workstation 2.x/3.x, Athena’s Charm Table Search 0.35b, Process Explorer, Araxis Merge 2023.5877, Framemaker 8, Internet Download Manager, Air Jura, SpeedCommander, ModOrganizer, RestoreDC, Acid-V VST-plugin, MIDITrail 1.4.0.
- Fejlrapporter relateret til spil er blevet lukket: For Honor, STEEP, Far Cry 5, NFS Most Wanted, Castlevania: Lords of Shadow 2, Eurobattle, Daily Chthonicle, Crimson Skies.
Derudover kan det nævnes, at Wine-projektet har offentliggjort vkd3d 1.10-pakken med implementeringen af Direct3D 12, der fungerer via opkaldstransformationer til grafisk API Vulkan. Pakken indeholder bibliotekerne libvkd3d med implementeringsdetaljer for Direct3D 12, libvkd3d-shader med oversætteren for shader-modeller 4 og 5 samt libvkd3d-utils med funktioner til at lette porteringen af Direct3D 12-applikationer, samt et sæt demonstrations-eksempler, herunder porten glxgears til Direct3D 12. Projektkoden distribueres under LGPLv2.1-licensen.
Biblioteket libvkd3d understøtter det meste af Direct3D 12's funktionalitet, inklusive værktøjer til grafik og beregninger, køer og kommandolister, deskriptorer og hukommelsesdeskriptorer, rodsignaturer, uordentlig adgang, samples, kommandosignaturer, rodkonstanter, indirekte rendering, Clear*() og Copy*() metoder. I libvkd3d-shader er oversættelsen af bytecode for shader-modeller version 4 og 5 implementeret til et mellemliggende repræsentation kaldet SPIR-V. Vekselvirkede, pixel-, tessellerings-, beregnings- og enkle geometriske shaders støttes, ligesom serialisering og deserialisering af rodsignaturen. Af shader-instruktioner er aritmetiske, atomiske og bitoperationer, sammenligningsoperatorer og kontrolstrømmen instruktioner realiseret, samt sample-, gather- og load-instruktioner, og operationer for uordentlig adgang (UAV, Unordered Access View).
I den nye version fortsætter arbejdet med at forbedre shaderkompilatoren for HLSL (High-Level Shader Language), som er tilgængelig siden DirectX 9.0: støtte for dynamisk indeksering af arrays er tilføjet; udtryk som 'break', 'continue' og 'switch' er blevet tilføjet; udtrykkene, hvor konstantfoldning kan anvendes, er blevet udvidet; indbyggede funktioner som ceil(), degrees(), radians(), fwidth(), tan(), tex2Dlod(), tex2Dproj(), texCUBEproj() og tex3Dproj() er implementeret.
Biblioteket libvkd3d har fået nye Direct3D 12 API'er (ID3D12Device5, ID3D12GraphicsCommandList5 og ID3D12Resource1) og muligheden for at oprette pipeline state objects er implementeret. I libvkd3d-utils er der tilføjet hjælpefunktioner til håndtering af DXBC: D3DGetBlobPart(), D3DGetDebugInfo(), D3DGetInputAndOutputSignatureBlob(), D3DGetInputSignatureBlob(), D3DGetOutputSignatureBlob(), D3DStripShader(). Kompilatoren vkd3d-compiler har fået tilføjet indstillingerne '--fragment-coordinate-origin' og '--semantic-compat-map'.
Kilde: opennet.ru
