An experimental release of the open implementation of the Win32 API — Wine 11.10 has been published. Since the release of 11.9, 17 bug reports have been closed and 248 changes made.
The most significant changes:
- The built-in Vkd3d package with Direct3D 12 implementation has been updated to version 2.0.
- A revamped support for the XPath language has been proposed, implemented without using the libxml2 library.
- Compatibility with VBScript has been improved.
- Stubs for the ALPC (Advanced Local Procedure Call) API have been added to ntdll: NtAlpcCreatePort(), NtAlpcConnectPort(), NtAlpcAcceptConnectPort(), NtAlpcSendWaitReceivePort(), NtAlpcDisconnectPort(), and NtAlpcImpersonateClientOfPort().
- Bluetooth support has been improved, adding methods BluetoothLEDeviceStatics::FromBluetoothAddressAsync, IBluetoothLEDevice::get_DeviceId, IBluetoothLEDevice::get_GattServices, IGattDeviceService::get_Uuid, and IGattDeviceService::get_AttributeHandle.
- The d3dx10 and d3dx11 implementations have been enhanced to load DDS files with texture arrays. Support for 3D textures, mipmap level support, and MIP generation has been added to the D3DX10LoadTextureFromTexture() function.
- The win32u DLL has implemented the functions NtUserGetMessagePos() and NtUserSetMessageExtraInfo().
- Bug reports related to applications have been closed: IrfanView, Kodak EasyShare, Git for Windows, Family Tree Maker 2017, Foxit PhantomPDF Business 10.0, Vocaloid 6, Photolemur 3.
TrackChecker. - Bug reports related to games have been closed: Star Wars Racer, Star Wars: Knights of the Old Republic, Age of Empires III: The Asian Dynasties.
The Wine project has also released the vkd3d 2.0 package with Direct3D 12 implementation, working by translating calls to the Vulkan graphics API. The package includes libraries libvkd3d with Direct3D 12 implementations, libvkd3d-shader with a shader model translator, and libvkd3d-utils with functions to ease the porting of Direct3D 12 applications, as well as a set of demo examples, including the glxgears port 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:
- Initial support for loops for 2-3 shader models has been added to the HLSL shader language implementation, enabling writing to structured shared memory for thread groups, implementing built-in functions tex3Dbias(), tex3Dlod(), and texCUBElod(), and providing support for the semantics SV_ClipDistance, SV_CullDistance, and SV_StencilRef for processing input and output from shaders.
- The HLSL shader compiler now features automatic removal of duplicate computations, allows for the calculation of expressions like x % y at compile time with known values, and improves the distribution of temporary registers. In accordance with HLSL specification requirements, the scope of variables in 'for' loops has been expanded (the variable remains accessible after the loop ends). Locale considerations for parsing floating-point numbers have been discontinued (the dot is now always used as the separator).
- Improved support for the older Direct3D shader binary format. Introduced instructions m4x4, m3x4, m4x3, m3x3, m3x2, phase, texdepth,
texreg2ar, texreg2gb, texreg2rgb. Support has been added for modifiers '_dz', '_db', '_dw', and '_da', which can be used with the texcrd and texld instructions. Support for registers 'vFace' and 'vPos' has been added for pixel shader operations. - In DXIL (Direct3D Intermediate Language), the code includes the ability to use pointers to data declared later in load, store, atomic update, and comparison operations.
- The Direct3D shader assembler now supports 16-bit embedded constants, as well as the flags '64UAVs',
'ROVs',
'UAVLoadAdditionalFormats',
'UAVsAtEveryStage',
'allResourcesBound',
'enable11_1ShaderExtensions',
'int64Ops',
'nativeLowPrecision',
'stencilRef',
'viewportAndRTArrayIndex', and
'waveOps'. - Shader compilation options have been implemented: VKD3D_SHADER_COMPILE_OPTION_DENORMAL_MODE_F16, VKD3D_SHADER_COMPILE_OPTION_DENORMAL_MODE_F32, VKD3D_SHADER_COMPILE_OPTION_DENORMAL_MODE_F64, and VKD3D_SHADER_COMPILE_OPTION_CONST_GLOBAL_UNIFORM.
Source: opennet.ru
