The Wine development release 10.3 is now available.
What's new in this release: - Clipboard support in the Wayland driver. - Initial Vulkan video decoder support in WineD3D. - Bundled Compiler-RT library for ARM builds. - Header fixes for Winelib C++ support. - More progress on the Bluetooth driver. - Various bug fixes.
The source is available at https://dl.winehq.org/wine/source/10.x/wine-10.3.tar.xz
Binary packages for various distributions will be available from the respective [download sites][1].
You will find documentation [here][2].
Wine is available thanks to the work of many people. See the file [AUTHORS][3] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/wikis/Download [2]: https://gitlab.winehq.org/wine/wine/-/wikis/Documentation [3]: https://gitlab.winehq.org/wine/wine/-/raw/wine-10.3/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 10.3 (total 18):
- #3930 Miles Sound System (WAIL32.DLL) SuspendThread() deadlock in WINMM callback (silent black screen on HOMM startup) - #8532 JawsEditor 2.5/3.0 reports "Invalid imagesize" on startup ('IPicture::SaveAsFile' method too stubby/incorrect) - #38879 wbemprox fill_videocontroller calls are expensive - #40523 legrand xlpro3 400 : unable to insert a pictogram - #41427 [Game Maker Studio - Android] subst.exe is not implemented - #45119 Multiple applications from Google sandbox-attacksurface-analysis-tools v1.1.x (targeting native API) need 'ntdll.NtGetNextProcess' implementation - #50337 Roland Zenology Pro (VST3 plugin) used with carla-bridge fails to save files - #50929 Silver Chains (GOG) crashes and start dumping memory in console - #51121 HeidiSQL 11.0.0.5919 shows a blinking black screen and crashes without virtual desktop - #52094 IDA Pro 7.6 crashes when loading idapython3.dll - #56695 Unreal Engine game checks for a specific VC runtime regkey - #57323 Windows 7 Card Games crash on start - #57849 Multiple games: sleep accuracy is affected by mouse movement speed - #57850 Reolink fails to load dll: err:module:import_dll Loading library libvips-42.dll - #57854 Steam.exe fails to start (hangs upon loading) in Wine-10.2 - #57881 Wine10.2 Noble does not open Quicken 2004, qw.exe file - #57899 R-Link 2 Toolbox crash - #57903 kernel32:loader - test_export_forwarder_dep_chain fails on Windows 7
### Changes since 10.2: ``` Alexander Morozov (1): wineusb.sys: Add support for URB_FUNCTION_VENDOR_ENDPOINT.
Alexandre Julliard (32): ntdll: Fix pointer access in read_image_directory(). tomcrypt: Import code from upstream libtomcrypt version 1.18.2. tomcrypt: Import code from upstream libtommath version 1.1.0. bcrypt: Use the bundled tomcrypt library for hash algorithms. ntdll: Use the bundled tomcrypt for the crc32 implementation. rsaenh: Split encrypt and decrypt implementation functions. rsaenh: Use the bundled tomcrypt to replace the local copy. configure: Check that the 32- and 64-bit builds are using the same libdir. ntdll: Add some missing Zw exports. apisetschema: Add some new apisets, and old ones for recently added dlls. dataexchange: Don't create an empty import lib. makefiles: Import winecrt0 by default even with -nodefaultlibs. tools: Avoid const strarray pointers in all functions. include: Fix some invalid array definitions in PDB structures. makefiles: Add support for assembly source files. makefiles: Add support for optionally installing external libs. libs: Import code from upstream compiler-rt version 8.0.1. makefiles: Link to compiler-rt for builds in MSVC mode. profapi: Don't create an empty importlib. winedump: Fix dumping of empty values in version resources. make_unicode: Generate the PostScript builtin font metrics. wineps: Remove the old font generation code. wineps: Move the generated glyph list to a separate glyphs.c file. wineps: Update the glyph list to a more recent version. wineps: Generate all core fonts metrics into a single file. wineps: Reduce the size of the stored core fonts metrics data. png: Import upstream release 1.6.47. setupapi: Create fake dlls for missing dlls only if explicitly requested. include: Import mmreg.h instead of duplicating definitions. winegcc: PE targets always use msvcrt mode, remove redundant checks. winegcc: Use -nodefaultlibs also for the linker tests. winegcc: Merge the utility functions into the main file.
Alexandros Frantzis (8): winewayland: Implement zwlr_data_control_device_v1 initialization. winewayland: Support copying text from win32 clipboard to native apps. winewayland: Generalize support for exporting clipboard formats. winewayland: Support exporting various clipboard formats. winewayland: Support copying data from native clipboard to win32 apps. winewayland: Normalize received MIME type strings. winewayland: Present EGL surfaces opaquely. winewayland: Treat fully transparent cursors as hidden.
Alistair Leslie-Hughes (6): include: Add Get/SetValue for gdiplus Color class. include: Keep the same header order as SDK in gdiplus.h. include: Add gdiplusbase.h. include: Add a few sal.h defines. include: Add stscanf_s define. vbscript: Correct resource text for VBSE_PARAMETER_NOT_OPTIONAL.
Arkadiusz Hiler (1): krnl386: Silence a warning in GetSystemDirectory16().
Attila Fidan (2): winewayland: Update locked pointer position hint. winewayland: Implement SetCursorPos via pointer lock.
Bernhard Kölbl (1): wine.inf: Add VC runtime version key.
Bernhard Übelacker (11): comctl32/tests: Skip a few tests in non-english locale. user32/tests: Fix monitor dpi awareness test. ntdll/tests: Skip FileFsFullSizeInformationEx test on older windows. kernelbase/tests: Skip test if EnumSystemFirmwareTables is not available. propsys/tests: Add broken for unexpected value in windows 7. d2d1/tests: Adjust tolerance of a few float comparisons in windows 7. ws2_32/tests: Allow WSAConnectByNameA test to fail with WSAEOPNOTSUPP. propsys/tests: Fix check_PropVariantToBSTR2. setupapi: Initialize the files member in SetupDuplicateDiskSpaceListW. (ASan). setupapi/tests: Fix message of ok statement. kernel32/tests: Add broken in test_IdnToNameprepUnicode.
Brendan McGrath (24): mp3dmod/tests: Add tests for selecting an invalid stream. mp3dmod: Check for invalid stream. mp3dmod/tests: Add tests for GetInputCurrentType. mp3dmod/tests: Add tests for GetOutputCurrentType. mp3dmod: Implement GetInputCurrentType. mp3dmod: Implement GetOutputCurrentType. mp3dmod: Fix leak of previous outtype. mfplat/tests: Add additional MFCreateWaveFormatExFromMFMediaType tests. mfplat: Allow MF_MT_USER_DATA to be missing for all subtypes. winedmo: Call avformat_find_stream_info for the mp3 format. mp3dmod: Return S_OK in Allocate/Free Resources. mp3dmod/tests: Add test for 32-bit sample size. mp3dmod: Add support for 32-bit sample size. mp3dmod/tests: Test different output sample rates. mp3dmod: Return error if requested output format values don't agree. mp3dmod: Only allow 1/2 and 1/4 subsampling. mp3dmod/tests: Add test for nChannels = 0 on input. mp3dmod: Ensure nChannels is greater than zero on input. mf/tests: Test different length user_data against aac decoder. winegstreamer: Validate the value of cbSize in aac decoder. winegstreamer: Expand GST_ELEMENT_REGISTER* defines. wined3d: Interpret Y'CbCr values as being from the reduced range. mp3dmod: Implement an IMFTransform interface. mfsrcsnk: Register the MP3 Byte Stream Handler class.
Brendan Shanks (9): include: Add D3DKMT_WDDM_*_CAPS. winemac: Remove pre-macOS 10.12 workarounds. winemac: Always use notifications to detect window dragging. winecoreaudio: Remove pre-macOS 10.12 workaround. winegcc: Rename TOOL_ enum constants. tools: Use _NSGetExecutablePath to implement get_bindir on macOS. server: Use _NSGetExecutablePath to implement get_nls_dir on macOS. loader: Use _NSGetExecutablePath to implement get_self_exe on macOS. user32: Use the correct DPI in AdjustWindowRect(Ex) when DPI virtualization is active.
Charlotte Pabst (1): winex11.drv: Weaken filter_event conditions for some events.
Connor McAdams (11): d3dx9/tests: Add some more tests for saving surfaces as targa files. d3dx9/tests: Add a test for saving a surface as D3DXIFF_DIB. d3dx9/tests: Add tests for saving surfaces to non-DDS files. d3dx9: Add TGA prefix to targa specific defines. d3dx9: Add basic support for saving surfaces to targa files. d3dx9: Add support for selecting a replacement pixel format when saving pixels to a file. d3dx9: Add support for saving PNG files in d3dx_save_pixels_to_memory(). d3dx9: Add support for saving JPG files in d3dx_save_pixels_to_memory(). d3dx9: Add support for saving BMP files in d3dx_save_pixels_to_memory(). d3dx9: Add support for saving paletted pixel formats in d3dx_pixels_save_wic(). d3dx9: Add support for saving DIB files in d3dx_save_pixels_to_memory().
Conor McCarthy (4): ntdll/tests: Test NtQueryVolumeInformationFile() with FileFsFullSizeInformationEx. kernel32/tests: Test GetDiskSpaceInformationA(). ntdll: Handle FileFsFullSizeInformationEx in NtQueryVolumeInformationFile(). kernelbase: Implement GetDiskSpaceInformationA/W().
Daniel Lehman (3): dwrite: Fix spelling for Sundanese. xml2: Import upstream release 2.12.9. xml2: Import upstream release 2.12.10.
Dmitry Timoshkov (7): oleaut32/tests: Add some tests for loading and saving EMF using IPicture interface. oleaut32: Add support for loading and saving EMF to IPicture interface. oleaut32: Implement a better stub for IPicture::SaveAsFile. wbemprox: Add support for Win32_PhysicalMemoryArray. windowscodecs: Make support for WICBitmapTransformRotate270 more explicit. kernel32: SuspendThread() in Win9x mode should return 0 for current thread. advapi32: Add CreateProcessWithLogonW() semi-stub.
Elizabeth Figura (27): d3dx9/tests: Define D3DX_SDK_VERSION=36 for d3dx9_36. d3dx9/tests: Test implicit truncation warnings. vkd3d: Import vkd3d-utils. d3dcompiler: Use D3DPreprocess() from vkd3d-utils. d3dcompiler: Use D3DCompile2VKD3D() from vkd3d-utils. d3dx9: Reimplement D3DXCompileShader() for versions before 42. d3dx9: Link versions 42 and 43 to the corresponding d3dcompiler DLL. wined3d: Use a separate format value for d3d10+ NV12. wined3d: Separate a wined3d_texture_vk_upload_plane() helper. wined3d: Separate a wined3d_texture_vk_download_plane() helper. wined3d: Implement planar Vulkan uploads. wined3d: Implement planar Vulkan downloads. wined3d: Implement planar Vulkan blits. wined3d: Enable KHR_sampler_ycbcr_conversion. wined3d: Implement planar NV12 in the Vulkan renderer. d3d11/tests: Extend NV12 tests. setupapi/tests: Test disk space list APIs. setupapi: Get rid of the DISKSPACELIST typedef. setupapi: Implement SetupAddToDiskSpaceList(). setupapi: Correctly implement SetupQuerySpaceRequiredOnDrive(). d3d11: Implement ID3D11VideoDevice::GetVideoDecoderProfile[Count](). wined3d: Introduce a Vulkan decoder backend. d3d11: Create a wined3d_decoder object backing the d3d11 decoder object. wined3d: Look for a video decode queue. wined3d: Create a Vulkan video session backing the wined3d_decoder_vk. d3d9/tests: Expand the YUV blit tests a bit. ddraw/tests: Port yuv_layout_test() from d3d9.
Eric Pouech (4): findstr/tests: Add test for default findstr regex vs text search mode. findstr: Set default search mode to regex. findstr/tests: Always set text/regex search mode in tests. cmd: Open file in 'TYPE' with more sharing attributes.
Esme Povirk (4): gdiplus: Stub GdipGetEffectParameters. gdiplus/tests: Add tests for effect parameters. gdiplus: Split effect parameter size into helper function. gdiplus: Store parameters on effect objects.
Etaash Mathamsetty (2): ntdll: Implement NtGetNextProcess. ntdll/tests: Add NtGetNextProcess tests.
Eugene McArdle (2): ntdll/tests: Test updated NtQueryDirectoryFile mask reset behaviour. ntdll: Invalidate cached data in NtQueryDirectoryFile when mask is changed.
Floris Renaud (1): po: Update Dutch translation.
Giovanni Mascellani (8): dxgi: Submit Vulkan presentation as soon as possible. dxgi: Set the frame latency even when increasing the frame latency. dxgi: Do not bias the frame latency fence. dxgi: Directly signal the frame latency fence. dxgi: Remove the frame latency fence. dxgi: Make the frame latency waitable a semaphore. dxgi: Wait on the frame latency semaphore when the client doesn't do it. dxgi/tests: Use an explicit frame latency waitable when testing the back buffer index.
Hajo Nils Krabbenhöft (1): d2d1: Update DC target surface with current HDC contents on BeginDraw().
Hans Leidekker (7): subst: Add basic implementation. win32u: Also set DriverVersion for software devices such as llvmpipe. wbemprox: Don't use DXGI adapter values for Win32_SoundDevice. wbemprox: Get Win32_VideoController values from the registry. wmic: Treat VT_I4 values as unsigned. wbemprox: Fix format string. wbemprox/tests: Avoid test failures on Windows 7.
Haoyang Chen (2): comctl32: Fix Alloc/HeapAlloc mismatches. cryptnet: Uniform return value that is the same as _wfsopen.
Henri Verbeet (1): wined3d: Handle a NULL "push_constants" buffer in glsl_fragment_pipe_alpha_test_func().
Jacek Caban (13): winegcc: Don't include host include paths when compiling with MSVCRT. include: Use inline function for DeleteFile. include: Use wchar_t for platform types on PE targets. include: Add UnsignedMultiply128 and _umul128 support. include: Add ShiftRight128 and __shiftright128 support. include: Use inline functions for CopyFile and MoveFile. include: Use struct inheritance for MONITORINFOEX declaration in C++. include: Add isnormal C++ declaration. include: Introduce minwindef.h header file. include: Introduce fibersapi.h header file. include: Add missing d3d8types.h defines. include: Introduce minwinbase.h header file. include: Introduce sysinfoapi.h header file.
Jinoh Kang (10): ntdll: Sink module dependency registration towards the end of the function in find_forwarded_export(). ntdll: Don't re-add a module dependency if it already exists. ntdll: Register module dependency for export forwarders regardless of whether the dependency is already loaded. ntdll: Properly track refcount on static imports of export forwarders. ntdll: Eagerly call process_attach() on dynamic imports of export forwarders. ntdll: Explicitly ignore dynamic (GetProcAddress) importers as relay/snoop user module. ntdll: Properly track refcount on dynamic imports of export forwarders. ntdll: Remove superflous NULL check for importer. kernel32/tests: Fix thread handle leak in store_buffer_litmus_test. kernel32/tests: Work around Windows 7 issuing DllNotification even when loading with DONT_RESOLVE_DLL_REFERENCES.
Louis Lenders (1): ntdll: Silence the noisy FIXME in RtlGetCurrentProcessorNumberEx.
Mark Jansen (2): version/tests: Add a test for an empty value in VerQueryValueW. kernelbase: Fix VerQueryValueW with no data.
Mohamad Al-Jaf (1): makecab: Add stub program.
Nikolay Sivov (24): windowscodecs/gif: Store Image descriptor offset when reading GIF data. windowscodecs/metadata: Add an option to initialize reader from a memory block. windowscodecs/decoder: Separate metadata block reader to a reusable structure. windowscodecs/decoder: Add support for metadata block reader at decoder level. windowscodecs/decoder: Add support for IWICBitmapDecoder::CopyPalette() in common decoder. windowscodecs: Use common decoder for GIF format. windowscodecs/decoder: Reuse metadata readers instances. windowscodecs/decoder: Implement metadata readers enumerator for the common decoder. msxml3/tests: Remove tests that already run for msxml6. msxml6/tests: Move some of the SAXXMLReader60 tests. rtworkq: Fix private queue id mask check. mfplat/tests: Run tests modifying process state in separate processes. d2d1/tests: Add some tests for device context handling in the DC target. include: Add some flags constants used in pipes API. windowscodecs: Implement query strings enumerator. windowscodecs/tests: Add some more tests for query enumeration. windowscodecs/metadata: Do not decorate 'wstr' items with a type name in returned queries. windowscodecs: Implement CreateQueryWriterFromReader(). windowscodecs/tests: Add some tests for stream position handling when nested readers are used. windowscodecs/metadata: Restore original stream position on GetStream(). windowscodecs/metadata: Replicate original stream position when creating writer instances from readers. windowscodecs/tests: Add some tests for metadata handler GetClassID(). windowscodecs/metadata: Implement GetClassID(). windowscodecs: Implement GetPreferredVendorGUID().
Paul Gofman (5): ntdll: Add stub for RtlDeriveCapabilitySidsFromName(). ntdll/tests: Add tests for RtlDeriveCapabilitySidsFromName(). ntdll: Implement RtlDeriveCapabilitySidsFromName(). kernelbase: Implement DeriveCapabilitySidsFromName(). kernelbase/tests: Add test for DeriveCapabilitySidsFromName().
Piotr Caban (9): msvcr120: Simplify feupdateenv implementation. ole32: Mark property storage dirty in PropertyStorage_ConstructEmpty. ole32: Mark property storage not dirty after it's saved. ole32: Remove end label from PropertyStorage_WriteToStream. ole32: Reset output stream when wrting property storage. whoami: Return non-zero value on error. whoami: Handle arguments starting with '/' and '-'. whoami: Parse and validate all command line arguments. whoami: Support format specifiers when handling /user argument.
Raphael Riemann (1): kernelbase: Add WerRegisterCustomMetadata stub.
Rémi Bernon (29): winevulkan: Generate function pointers for required funcs. winevulkan: Enable the VK_EXT_headless_surface extension. win32u: Pass a vulkan_instance pointer to vulkan_surface_create. win32u: Use VK_EXT_headless_surface for nulldrv surface. winex11: Initialize window managed flag in create_whole_window. winex11: Request managed/embedded in a new window_set_managed helper. winex11: Check managed window changes in WindowPosChanged. winex11: Pass fullscreen flag to is_window_managed. winewayland: Pass fullscreen flag to is_window_managed. wined3d: Avoid double-free of swapchain surface on error. include: Add a MB_CUR_MAX definition in ctype.h. include: Add some _BitScanForward(64) declarations in intrin.h. include: Fix InlineIsEqualGUID C++ warning. include: Fix wmemchr C++ warning. winetest: Avoid underflow when computing filtered output size. win32u: Move OpenGL initialization to a separate source. win32u: Move dibdrv OpenGL functions to opengl.c. win32u: Move OSMesa OpenGL functions to opengl.c. win32u: Remove unncessary OSMesa indirections. win32u: Guard OpenGL function pointers initialization. wineandroid: Remove now unnecessary wine_get_wgl_driver init guard. winemac: Remove now unnecessary wine_get_wgl_driver init guard. winex11: Remove now unnecessary wine_get_wgl_driver init guard. winewayland: Remove now unnecessary wine_get_wgl_driver init guard. include: Add IID_PPV_ARGS macro. include: Add QueryDisplayConfig declaration. include: Add d3d8 interface GUIDs. include: Add D3D9 interface GUIDs. include: Fix D3DDEVINFO_D3DRESOURCEMANAGER type name.
Sebastian Lackner (1): oleaut32: Implement SaveAsFile for PICTYPE_ENHMETAFILE.
Tim Clem (1): wbemprox: Add Manufacturer and Speed to Win32_PhysicalMemory.
Vadim Kazakov (1): include: Add definition of NEGOSSP_NAME.
Vibhav Pant (15): winebth.sys: Store known devices per radio from org.bluez.Device1 objects on BlueZ. winebth.sys: Add a basic implementation for IOCTL_BTH_GET_DEVICE_INFO. winebth.sys: Add connection related properties for remote devices. winebth.sys: Queue a DEVICE_ADDED event on receiving InterfacesAdded for objects that implement org.bluez.Device1. winebth.sys: Remove the corresponding device entry for Bluetooth radios on receiving InterfacesRemoved for org.bluez.Device1 objects. winebth.sys: Use the correct DBus property name in IOCTL_WINEBTH_RADIO_SET_FLAG. winebth.sys: Initially set numOfDevices to 0 in IOCTL_BTH_GET_DEVICE_INFO. winebth.sys: Don't iterate over the remaining radios once a local device has been removed. winebth.sys: Use the "Name" property of a BlueZ adapter for the local radio name. winebth.sys: Use the "Trusted" property from BlueZ device objects to set BDIF_PERSONAL. winebth.sys: Set the device class for remote devices from BlueZ's "Class" property. winebth.sys: Only set the updated properties for local radios on BLUETOOTH_WATCHER_EVENT_TYPE_RADIO_PROPERTIES_CHANGED. winebth.sys: Update properties for tracked remote devices on receiving PropertiesChanged for org.bluez.Device1 objects from BlueZ. ws2_32: Implement WSAAddressToString() for Bluetooth (AF_BTH) addresses. ws2_32/tests: Add tests for Bluetooth addresses for WSAStringToAddress().
William Horvath (2): server: Use a high precision timespec directly for poll timeouts on supported platforms. server: Use epoll_pwait2 for the main loop on Linux.
Yuxuan Shui (1): winegstreamer: Avoid large buffer pushes in wg_transform.
Zhiyi Zhang (8): imm32/tests: Test that the IME UI window shouldn't be above normal windows at creation. imm32: Move the IME UI window to the bottom at creation. d3d11/tests: Test that the fallback device window shouldn't be above normal windows at creation. dxgi: Move the fallback device window to the bottom at creation. winex11.drv: Allow MWM_FUNC_MAXIMIZE when WS_MAXIMIZE is present. win32u: Use the normal window rectangle to find monitor when a window is minimized. win32u: Remove an unused parameter. win32u: Don't use the current mode in the registry if it's a detached mode.
Ziqing Hui (4): mfreadwrite/tests: Move writer creation tests to test_sink_writer_create. mfreadwrite/tests: Test getting transforms and media sinks from writer. mfreadwrite/tests: Test AddStream and SetInputMediaType for writer. mfreadwrite/tests: Test sample processing for writer. ```