An experimental release of the open implementation of the Win32 API — Wine 10.20 has been published. Since the release of 10.19, 31 bug reports have been closed and 337 changes have been made.
The most significant changes:
- The integrated Vkd3d package with Direct3D 12 implementation has been updated to version 1.18.
- A dialog window has been added to display the progress of document scanning.
- The implementation of the Reparse Point mechanism has continued, allowing additional data, identified by tags, to be attached to files and directories. Support for Reparse Point has been provided in the functions CreateHardLink(), SetFileAttributes(), FindNextFile(), MoveFileWithProgress().
- The refactoring of the Common Control implementation has continued after the splitting of the COMCTL32 library into separate modules for versions 5 and 6.
- The issue causing many games (e.g., Syberia 2) to crash when using WoW64 mode on systems with NVIDIA GPUs has been resolved.
- The issue with the lagging response when pressing cursor control keys in some games, such as Might and Magic VI, has been resolved.
- The issue of freezing or failure to launch certain Windows application builds using the GTK library, such as Meld and Geany, has been resolved.
- Bug reports related to the functioning of the following applications have been closed: SQL Server 2012/2014, MS Office 365 installer, 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.
- Bug reports related to the functioning of the following games have been closed: Civilization 1.2, StarCraft, Last Stand: Aftermath, Mega Man X DiVE, Wagotabi, Geneforge 1 — Mutagen.
The Wine project has also released version 1.18 of the vkd3d package with Direct3D 12 implementation, operating through call translation to the Vulkan graphics API. The package includes libraries libvkd3d with Direct3D 12 implementation, libvkd3d-shader with translators for shader model 4 and 5, and libvkd3d-utils with functions to simplify the porting of Direct3D 12 applications, as well as a set of demonstration examples, including the port of glxgears to Direct3D 12. The project code is distributed under the LGPLv2.1 license.
The libvkd3d library supports most features of Direct3D 12, including graphics and compute tools, queues and command lists, descriptors and heap descriptors, root signatures, unordered access, Samplers, command signatures, root constants, indirect rendering, and Clear*() and Copy*() methods. In libvkd3d-shader, the translation of shader model bytecode into the intermediate SPIR-V representation is implemented. It supports vertex, pixel, tessellation, compute, and simple geometry shaders, as well as serialization and deserialization of root signature. Among the shader instructions, arithmetic, atomic and bitwise operations, comparison operators, data flow control statements, sample, gather and load instructions, and unordered access operations (UAV, Unordered Access View) are implemented.
In the new version of vkd3d:
- Built-in functions countbits(), firstbithigh(), firstbitlow(), frexp(), and texCUBEbias() have been added to the HLSL shader language implementation. Support for conditional expressions with integer types has been implemented for Shader Model 1-3.
- The HLSL shader compiler has optimized the compilation of code with conditional if/else statements. Constant folding has been expanded at compile time. This optimization can now be applied to expressions like 'true ? x : y' and functions asfloat(), asint(), asuint(), cos(), mad(), round(), and sin().
- A CreateCommandList1() method has been added to the ID3D12Device4 interface in the libvkd3d library.
- New Direct3D bytecode instructions have been added: bem, tex, texbem, texbeml, and texcoord.
- The development of the MSL (Metal Shading Language) used by Apple in its Metal graphics API continues. Support for compute shaders, instant initialization of constant buffers, trigonometric functions, modulo operations, and bitwise shifts has been added.
- Unsigned integer division and modulo operations, as well as sin() and cos() functions, and the ability to offset texels when loading textures have been added to the GLSL (OpenGL Shading Language) implementation.
Additionally, Valve has released VKD3D-Proton 3.0, a branch from the vkd3d codebase designed to enhance Direct3D 12 support within the Proton game launch package. VKD3D-Proton includes Proton-specific changes, optimizations, and enhancements for better performance of Windows games based on Direct3D 12, which have not yet been integrated into the main vkd3d codebase. Notable differences also include a focus on utilizing modern Vulkan extensions and the capabilities of the latest graphics driver releases to achieve full compatibility with Direct3D 12.
Changes in the new version of vkd3d-proton include:
- The DXBC (DirectX ByteCode) shader backend has been rewritten, replacing the vkd3d-shader backend. The new backend resolves issues in many games that previously arose due to the lack of necessary functionality in vkd3d-shader, such as the functioning of Red Dead Redemption 2 in D3D12 mode.
- Support for FSR4 (AMD FidelityFX Super Resolution) supersampling technology has been added.
- Experimental support for D3D12 Work Graphs has been introduced.
- Experimental support for Opacity MicroMaps (OMM) has been added.
- Issues in games such as 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, and Final Fantasy Tactics have been resolved.
Source: opennet.ru
