Den eksperimentelle udgave af den åbne implementering af Win32 API — Wine 10.20 er blevet offentliggjort. Siden udgivelsen af 10.19 er 31 fejlrapporter blevet lukket, og 337 ændringer er blevet foretaget.
De vigtigste ændringer:
- Den indbyggede pakke Vkd3d med implementering af Direct3D 12 er opdateret til version 1.18.
- Et dialogvindue er tilføjet til visning af scanningafgrænsning for dokumenter.
- Implementeringen af mekanismen Reparse Point fortsætter, som gør det muligt at knytte ekstra data, der identificeres gennem tags, til filer og mapper. Reparse Point understøttes nu i funktionerne CreateHardLink(), SetFileAttributes(), FindNextFile(), MoveFileWithProgress().
- Refactoreringen af implementeringen Common Control fortsætter efter opdelingen af COMCTL32-biblioteket i separate moduler for versionerne 5 og 6.
- Problemet med, at mange spil (f.eks. Syberia 2) crasher i WoW64-tilstand på systemer med NVIDIA GPU'en, er blevet løst.
- Problemet med hængende reaktion ved tryk på piletasterne i visse spil, såsom Might and Magic VI, er blevet løst.
- Problemet med at nogle Windows-versioner af applikationer, der bruger GTK-biblioteket, f.eks. Meld og Geany, enten hænger eller ikke kan startes, er blevet løst.
- Fejlrapporter relateret til applikationsdrift er blevet lukket: SQL Server 2012/2014, MS Office 365-installationsprogram, QuarkXPress 2024, TomTom MyDrive Connect 4.x, Spine, GenLauncher, grepwinNP3, PlayOnline Viewer, tlReader 10.1.0.2004, cmd.exe, CLM Explorer, HiveMQ CE 2025.5.
- Fejlrapporter relateret til spildrift er blevet lukket: Civilization 1.2, StarCraft, Last Stand: Aftermath, Mega Man X DiVE, Wagotabi, Geneforge 1 — Mutagen.
Wine-projektet har også offentliggjort en udgave af vkd3d-pakken 1.18 med implementering af Direct3D 12, der fungerer ved at oversætte opkald til grafisk API Vulkan. Pakken inkluderer bibliotekerne libvkd3d med implementeringen af Direct3D 12, libvkd3d-shader med oversætteren for shader-modellerne 4 og 5 samt libvkd3d-utils med funktioner til at lette porteringen af Direct3D 12-applikationer, samt et sæt demonstrations-eksempler, herunder porten af glxgears til Direct3D 12. Koden fra projektet distribueres under LGPLv2.1-licensen.
Biblioteket libvkd3d understøtter det meste af funktionaliteterne i Direct3D 12, inklusive værktøjer til grafik og beregninger, køer og kommandolister, deskriptorer og hobe-deskriptorer, rod-signaturer, uordentlig adgang, samplere, kommandosignaturer, rodkonstanter, indirekte tegning, metoderne Clear*() og Copy*(). I libvkd3d-shader er der implementeret oversættelse af shader-modellens bytekode til det mellemliggende format SPIR-V. Støtte til vertex-, pixel-, tesselerings-, beregnings- og enkle geometriske shaderne, serialisering og deserialisering af rod-signatur. Af shader-instruktioner er der implementeret aritmetiske, atomare og bitoperationer, sammenligningsoperatører og kontrolstraumsinstruktioner, samt instruktioner som sample, gather og load, og operationer for uordentlig adgang (UAV, Unordered Access View).
I den nye version af vkd3d:
- Implementeringen af HLSL-shadersproget har fået tilføjet indbyggede funktioner countbits(), firstbithigh(), firstbitlow(), frexp() og texCUBEbias(). For Shader Model 1-3 er der implementeret understøttelse af betingede udtryk med heltalstyper.
- I HLSL-shaderkompilatoren er kompileringen af kode med betingede operatorer if/else blevet optimeret. Konstantberegning er blevet udvidet i kompileringstrinnet (constant folding). Sådan en optimering kan nu anvendes til udtryk som «true ? x : y» samt funktioner asfloat(), asint(), asuint(), cos(), mad(), round() og sin().
- I libvkd3d-biblioteket er der tilføjet en metode CreateCommandList1() til implementeringen af grænsefladen ID3D12Device4.
- Direct3D bytecode-instruktioner er blevet tilføjet: bem, tex, texbem, texbeml og texcoord.
- Udviklingen af Metal Shading Language (MSL), som anvendes af Apple i grafisk API Metal, fortsætter. Der er tilføjet støtte til compute shaders, øjeblikkeligt initialiserede konstantbuffere, trigonometriske funktioner, modulusoperationer og bitmaskering.
- I implementeringen af OpenGL Shading Language (GLSL) er der blevet tilføjet usignerede heltalsoperationer for division og modulus, funktioner som sin() og cos(), samt mulighed for offset af teksturer ved indlæsning.
Desuden har Valve offentliggjort udgaven VKD3D-Proton 3.0, en aflægger af koden fra vkd3d, designet til at forbedre understøttelsen af Direct3D 12 i Proton-spilpakken. I VKD3D-Proton understøttes specifikke ændringer, optimeringer og forbedringer for at sikre en bedre drift af Windows-spil baseret på Direct3D 12, som endnu ikke er blevet inkluderet i den primære vkd3d-kodebase. Blandt forskellene bemærkes fokus på at bruge moderne Vulkan-udvidelser og de nyeste grafikkortdrivere for at opnå fuld kompatibilitet med Direct3D 12.
Blandt ændringerne i den nye version af vkd3d-proton:
- DXBC (DirectX ByteCode) shader backend er blevet omskrevet, hvilket har erstattet vkd3d-shader backend. Den nye backend har løst problemer i mange spil, som tidligere opstod på grund af manglende funktionalitet i vkd3d-shader, for eksempel har det fået Red Dead Redemption 2 til at fungere ordentligt i D3D12-tilstand.
- Der er tilføjet support til supersampling-teknologi FSR4 (AMD FidelityFX Super Resolution).
- Eksperimentel støtte til D3D12 arbejdsdiagrammer (Work Graphs) er blevet tilføjet.
- Eksperimentel støtte til opacity micro-maps (OMM) er blevet tilføjet.
- Problemer i spillene Star Citizen, Ninja Gaiden 4, Monster Hunter Wilds, Wreckfest 2, Satisfactory, Street Fighter 6, Death Stranding, Wuthering Waves, Dune, Spider-Man Remastered, Gray Zone Warfare, Rise of the Tomb Raider, Port Royal, Mafia: Definitive Edition, Final Fantasy Tactics er blevet løst.
Kilde: opennet.ru
