En experimentell version av den öppna implementeringen av Win32 API â Wine 10.20 har publicerats. Sedan version 10.19 har 31 buggrapporter stĂ€ngts och 337 Ă€ndringar har gjorts.
De viktigaste Àndringarna:
- Det inbyggda paketet Vkd3d med implementation av Direct3D 12 har uppdaterats till version 1.18.
- Ett fönster har lagts till för att visa skanningsprogressen av dokument.
- Implementeringen av mekanismen Reparse Point fortsÀtter, vilket gör det möjligt att koppla ytterligare data till filer och kataloger, identifierade via taggar. Stöd för Reparse Point har sÀkerstÀllts i funktionerna CreateHardLink(), SetFileAttributes(), FindNextFile(), MoveFileWithProgress().
- Refaktoriseringen av implementeringen av Common Control fortsÀtter efter att biblioteket COMCTL32 har delats upp i separata moduler för versioner 5 och 6.
- Ett problem med att mÄnga spel (t.ex. Syberia 2) kraschar vid anvÀndning av WoW64-lÀget pÄ system med NVIDIA GPU har lösts.
- Ett problem med reaktionsfördröjning vid tryck pÄ piltangenterna i vissa spel, sÄsom Might and Magic VI, har lösts.
- Ett problem med att vissa Windows-versioner av program som anvÀnder GTK-biblioteket, som Meld och Geany, hÀnger sig eller inte gÄr att starta har lösts.
- Buggrapporter relaterade till program: SQL Server 2012/2014, MS Office 365-installationen, 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 har stÀngts.
- Buggrapporter relaterade till spel: Civilization 1.2, StarCraft, Last Stand: Aftermath, Mega Man X DiVE, Wagotabi, Geneforge 1 â Mutagen har stĂ€ngts.
Wine-projektet har ocksÄ publicerat en version av paketet vkd3d 1.18 med en implementation av Direct3D 12 som fungerar genom att översÀtta anrop till grafiska API:er i Vulkan. Paketet innehÄller biblioteken libvkd3d med implementeringar 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 porteringen av Direct3D 12-applikationer, samt ett antal demonstrationsexempel, inklusive porteringen av glxgears till Direct3D 12. Koden för projektet distribueras under licensen LGPLv2.1.
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 av vkd3d:
- Inbyggda funktioner countbits(), firstbithigh(), firstbitlow(), frexp() och texCUBEbias() har lagts till i implementeringen av HLSL shadersprÄket. För Shader Model 1-3 har stöd för villkorsuttryck med heltalsformer implementerats.
- I kompilatorn för HLSL-shaders har kompileringen av kod med villkorsoperatorer if/else optimerats. BerÀkningen av konstanter under kompilering (constant folding) har utvidgats. Denna typ av optimering kan nu tillÀmpas pÄ uttryck av typen "true ? x : y" och funktioner som asfloat(), asint(), asuint(), cos(), mad(), round() och sin().
- I biblioteket libvkd3d har metoden CreateCommandList1() lagts till i implementationen av grÀnssnittet ID3D12Device4.
- Nya instruktioner för bytekod i Direct3D har lagts till: bem, tex, texbem, texbeml och texcoord.
- Utvecklingen av sprÄket för shaders MSL (Metal Shading Language), som anvÀnds av Apple i grafik-API:et Metal, har fortsatt. Stöd för berÀkningsshaders, omedelbart initialiserade konstantbuffrar, trigonometriska funktioner, operationsförmÄga för modulÀr division och bitvis manipulation har lagts till.
- I implementationen av sprÄket för shaders GLSL (OpenGL Shading Language) har osignerade heltalsoperationer för division och modulÀr division lagts till, liksom funktionerna sin() och cos(), samt möjlighet till texel-offset vid lastning av texturer.
Dessutom har företaget Valve publicerat versionen VKD3D-Proton 3.0, en förgrening av kodbasen vkd3d, skapad för att förbÀttra stödet för Direct3D 12 i spelförpackningen Proton. VKD3D-Proton innehÄller Proton-specifika förÀndringar, optimeringar och förbÀttringar för en mer kvalitativ körning av Windows-spel baserade pÄ Direct3D 12, som Ànnu inte har antagits i huvuddelen av vkd3d. Bland skillnaderna noteras ocksÄ fokus pÄ anvÀndning av moderna Vulkan-förlÀngningar och funktioner i de senaste grafikdrivrutinerna för att uppnÄ full kompatibilitet med Direct3D 12.
Bland förÀndringarna i den nya versionen av vkd3d-proton:
- Backend för DXBC-shaders (DirectX ByteCode) har skrivits om och ersatt backend vkd3d-shader. Den nya backend löste problem i mÄnga spel som tidigare uppstod pÄ grund av bristen pÄ nödvÀndig funktionalitet i vkd3d-shader, till exempel har spelet Red Dead Redemption 2 nu fungerat i D3D12-lÀge.
- Stöd för super samplingsteknologin FSR4 (AMD FidelityFX Super Resolution) har lagts till.
- Experimentellt stöd för arbetsgrafar D3D12 (Work Graphs) har lagts till.
- Experimentellt stöd för transparensmikro-kartor (OMM â Opacity MicroMaps) har lagts till.
- Problem i spelen 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 har lösats.
KĂ€lla: opennet.ru
