The Wine development release 8.7 is now available. What's new in this release: - DXBC shader parsing delegated to vkd3d. - More spool file improvements in the PostScript driver. - Various bug fixes. The source is available at: https://dl.winehq.org/wine/source/8.x/wine-8.7.tar.xz Binary packages for various distributions will be available from: https://www.winehq.org/download You will find documentation on https://www.winehq.org/documentation You can also get the current source directly from the git repository. Check https://www.winehq.org/git for details. Wine is available thanks to the work of many people. See the file AUTHORS in the distribution for the complete list. ---------------------------------------------------------------- Bugs fixed in 8.7 (total 17): - #9932 Listview highlight issues when drag&drop enabled - #23647 Street Fighter 4 Benchmark: Flickering screen with parallel rendering enabled - #32089 Window resize enters endless cycle - #32958 ReVolt 1207: Crashes when trying to play Stunt Arena - #33487 Davar bible software not working - #43672 Airscout program 1.2.0.5 does not load under wine 2.0.2 - #50249 Shapes On A Plane crashes on start - #51625 Unravel fails to load - #52322 wineserver memory leak during HTTPs download (Genshin Impact Launcher, Qt5) - #54424 user32:edit - test_dbcs_WM_CHAR() fails on Windows in mixed locales - #54464 Multiple games crash on launch (Sekiro: Shadows Die Twice GOTY, Dark Souls III) - #54799 wininet:internet - test_InternetGetConnectedStateExA() fails in the Japanese and Chinese locales in Wine - #54808 Access violation in ntdll when running Adolix Split and Merge PDF with .NET Framework installed - #54815 wininet:internet - test_InternetErrorDlg() fails on Windows 10 1607 - #54844 Existing prefixes keep resetting to Win10 when wine is updated - #54856 Final Fantasy XI Online: Opening movie doesn't play (redux part II). - #54882 Conemu fails to start (cannot attach to process) ---------------------------------------------------------------- Changes since 8.6: Alex Henrie (2): kernel32/tests: Check that lpSectionBase != NULL before dereferencing. ntdll: Increment offset by len in build_clr_surrogate_section. Alexandre Julliard (18): include: Add some CHPE definitions. winedump: Dump hybrid metadata also for i386 CHPE modules. include: Add the ARM64EC context structure. include: Update the PEB and TEB structures. zlib: Run source files through zlib2ansi to avoid K&R function definitions. makedep: Avoid generating empty dependencies. winedump: Print entry point names in code range lists. kernelbase: Move to a higher address on 64-bit. kernel32: Move to a higher address on 64-bit. ntdll: Reimplement RtlSetBits() to set 32 bits at a time. ntdll: Reimplement RtlClearBits() to clear 32 bits at a time. ntdll: Reimplement RtlAreBitsSet() to check 32 bits at a time. ntdll: Reimplement RtlAreBitsClear() to check 32 bits at a time. ntdll: Reimplement RtlNumberOfSetBits() to check 32 bits at a time. ntdll: Use a separate memory allocation for the kernel stack. ntdll: Use nameless unions/structs for register contexts. include: Add some new ProcThreadAttribute definitions. winedump: Fix printing of code ranges in hybrid modules. Alexandros Frantzis (5): winewayland.drv: Initialize display devices once after process init. tools: Support building Wayland protocol source files. winewayland.drv: Use the output name reported by the compositor. winewayland.drv: Basic support for Windows monitor positioning. winewayland.drv: Infer and report Windows monitor positions. Alistair Leslie-Hughes (1): widl: Suppress a coverity warning. Andrey Gusev (1): dxgi: Update TRACE in dxgi_device_create_resource(). André Zwing (1): ntdll: Print RPC_S_SERVER_UNAVAILABLE exceptions. Anton Baskanov (7): winegstreamer: Fix negative height image size calculation. winegstreamer: Call init_gstreamer() in winegstreamer_create_video_decoder(). dsound: Remove the unused nAvgBytesPerSec field. dsound: Remove redundant assignments to freqAdjustNum and freqAdjustDen. dsound: Preserve freqAccNum value in DSOUND_RecalcFormat(). dsound: Acquire the lock when setting 3D buffer parameters. dsound: Allocate big enough committedbuff up front. Aurimas Fišeras (1): po: Update Lithuanian translation. Bernhard Übelacker (1): ntoskrnl: Do not leak memory by setting input buffer to NULL. Brendan Shanks (4): winemac: Refactor constrain_window_frame() to use separate origin and size arguments. winemac: Set the Cocoa window contentMaxSize to the size limits from constrain_window_frame(). winemac: Don't constrain surface dimensions to the onscreen part of a window. msvcrt: Fix crash when rethrowing after a non-C++ exception on x86_64. Byeong-Sik Jeon (2): imm32: Stop updating INPUTCONTEXT hWnd member in ImmGetContext. imm32: Avoid updating INPUTCONTEXT hWnd on ImmSetActiveContext deactivation. Connor McAdams (12): uiautomationcore: Implement UIA_ControlTypePropertyId for default HWND provider. uiautomationcore: Implement UIA_BoundingRectanglePropertyId for default HWND provider. uiautomationcore: Implement NavigateDirection_Parent navigation for default HWND provider. uiautomationcore: Add a default ProviderType_Proxy MSAA bridge clientside provider. uiautomationcore: Implement UiaGetRootNode. uiautomationcore: Implement IUIAutomation::GetRootElement. uiautomationcore: Implement conditional NavigateDirection_Parent navigation. uiautomationcore: Add normalization navigation to UiaGetUpdatedCache. uiautomationcore: Add UiaNodeFromFocus stub. uiautomationcore: Implement UiaNodeFromFocus. uiautomationcore: Implement IUIAutomation::GetFocusedElement{BuildCacheRequest}. uiautomationcore: Retrieve runtime ID on UiaReturnRawElementProvider thread to prevent a deadlock. Davide Beatrici (22): winealsa: Export function to get AudioSessionWrapper object. winecoreaudio: Export function to get AudioSessionWrapper object. wineoss: Export function to get AudioSessionWrapper object. winepulse: Export function to get AudioSessionWrapper object. mmdevapi: Import GetAudioSessionWrapper() from driver. mmdevapi: Implement AudioSessionManager. winealsa: Remove AudioSessionManager. winecoreaudio: Remove AudioSessionManager. wineoss: Remove AudioSessionManager. winepulse: Remove AudioSessionManager. winealsa: Implement functions to lock and unlock sessions. winecoreaudio: Implement functions to lock and unlock sessions. wineoss: Implement functions to lock and unlock sessions. winepulse: Implement functions to lock and unlock sessions. winealsa: Use dedicated macros to call interface functions. winecoreaudio: Use dedicated macros to call interface functions. wineoss: Use dedicated macros to call interface functions. winepulse: Use dedicated macros to call interface functions. winealsa: Move AudioSessionControl into mmdevapi. winecoreaudio: Use mmdevapi's AudioSessionControl. wineoss: Use mmdevapi's AudioSessionControl. winepulse: Use mmdevapi's AudioSessionControl. Derek Lesho (1): winegstreamer: Cache wg_parser input data. Dmitry Timoshkov (1): shell32/tests: Add SHBindToFolderIDListParent() tests. Eric Pouech (6): mf/tests: Add tests about (negative) stride handling. winegstreamer: In video_processor, activate a videoflip converter. winedbg: Let 'break symbol : line' command work again. dbghelp: Use source file path as stored in debug info format. winedbg: Simplify watch command implementation. winedbg: Improve size management in watch command. François Gouget (7): user32/tests: Fix the DBCS WM_CHAR tests in mixed locales. dnsapi/tests: Make DnsQuery()'s CNAME tests more compatible with CDNs. wininet: Add constants for DetectAutoProxyUrl(). wininet/tests: Add more proxy tests. kernel32/tests: Fix the ScrollConsoleScreenBuffer() tests on Windows 10 1909. msi/tests: Fix the ok() formats so they match the size of their arguments. msi/tests: Ok_() takes printf-style arguments. Gabriel Ivăncescu (12): mshtml: Implement MediaQueryList's addListener method. mshtml: Implement MediaQueryList's removeListener method. mshtml: Use proper event type for PageTransition events. mshtml: Do not release the principal returned by GetPrincipal. mshtml: Fix factory leak in init_nsio. mshtml: Fix nsIFile dir leak in init_xpcom. mshtml: Fix URI leak in NewURI on failure. mshtml: Store minimum compat mode required for events in the ctor table. mshtml: Support cycle collection for nsChannel. mshtml: Fix nsChannel's load_info leak. mshtml: Pass actual node_ccp to ccref_decr for nodes. mshtml/tests: Fix element leak in elem_fire_event. Giovanni Mascellani (11): mfplat/tests: Test Lock2D() on a locked D3D9 surface buffer. mfplat/tests: Test locking flags for D3D9 buffers. mfplat/tests: Independently test that locking flags are ignored for D3D9 buffers. mfplat: Fix locking flags usage for D3D9 buffers. mfplat/tests: Test Lock2D() on a locked DXGI surface buffer. mfplat/tests: Test locking flags for DXGI buffers. mfplat: Do not mark a DXGI buffer as locked if surface mapping fails. mfplat: Fix locking flags usage for DXGI buffers. mfplat: Only download surface data from GPU for DXGI buffers when reading. mfplat: Only upload surface data to GPU for DXGI buffers when writing. mfplat/tests: Test that the content of DXGI buffers is discarded when locking for writing. Hans Leidekker (1): wine.inf: Use FLG_ADDREG_NOCLOBBER for CurrentMajor/MinorVersionNumber. Henri Verbeet (12): d3dcompiler: Check for minimum bytecode size in d3dcompiler_get_blob_part(). d3dcompiler: Check for minimum bytecode size in d3dcompiler_strip_shader(). d3dcompiler: Store DXBC sections as vkd3d_shader_dxbc_section_desc structures. d3dcompiler: Use vkd3d_shader_serialize_dxbc() in d3dcompiler_get_blob_part(). d3dcompiler: Use vkd3d_shader_serialize_dxbc() in d3dcompiler_strip_shader(). d3dcompiler: Use vkd3d_shader_parse_dxbc() in d3dcompiler_get_blob_part(). d3dcompiler: Use vkd3d_shader_parse_dxbc() in d3dcompiler_strip_shader(). d3dcompiler: Use vkd3d_shader_parse_dxbc() in d3dcompiler_shader_reflection_init(). wined3d: Implement shader_extract_from_dxbc() on top of vkd3d_shader_parse_dxbc(). vkd3d: Update the version information for release 1.7. d3d10: Implement d3d10_effect_parse() on top of vkd3d_shader_parse_dxbc(). d3d10: Implement parse_fx10_preshader() on top of vkd3d_shader_parse_dxbc(). Jactry Zeng (2): appwiz.cpl: Process messages while waiting for the uninstaller to terminate. appwiz.cpl: Handle WM_CLOSE and WM_COMMAND(IDCANCEL) in the support info dialog. Jinoh Kang (6): kernel32/tests: Test for activation context switching between fibers. ntdll: Factor out reading current activation context into a helper function. ntdll: Store current activation context stack pointer into a local variable. ntdll: Use ActivationContextStackPointer instead of referencing ActivationContextStack directly. ntdll: Implement RtlFreeActivationContextStack(). kernelbase: Implement activation context switching for fibers. Martin Garton (1): msvcrt: Fix typo in #define. Matteo Bruni (2): d3dcompiler/tests: Add a couple tests for minimum size in D3DGetBlobPart(). d3dcompiler/tests: Add a couple tests for minimum size in D3DStripShader(). Michael Stefaniuc (3): threadpoolwinrt: Forward a Release() to a Release() method. uiautomationcore: Drop superfluous TRUE : FALSE conditional expression. win32u: Use ARRAY_SIZE() instead of open coding it. Mohamad Al-Jaf (9): include: Add windows.graphics.capture.interop.idl file. include: Add appnotify.h file. twinapi.appcore: Add stub DLL. twinapi.appcore: Add RegisterAppStateChangeNotification stub. twinapi.appcore: Add UnregisterAppStateChangeNotification stub. apisetschema: Add api-ms-win-core-psm-appnotify-l1-1-0. shell32: Implement SHBindToFolderIDListParent(). shell32/tests: Test SHBindToParent() last parameter behavior. shell32: Fix last parameter behavior in SHBindToFolderIDListParent(). Paul Gofman (4): ntdll: Mind LFH pending blocks in RtlDestroyHeap(). ntdll: Avoid integer overflow in block_get_subheap(). mfplat: Fix returned buffer length in dxgi_surface_buffer_lock(). wined3d: Add a comment about mismatched samplers. Piotr Caban (36): wineps: Rename handle count parameter in hmf_proc. wineps: Set text and background color during device creation. wineps: Handle EMR_EXTCREATEFONTINDIRECTW record in spool files. wineps: Handle font selection in spool files. wineps: Store text justification info in print processor data. wineps: Handle EMR_EXTTEXTOUTW record in spool files. wineps: Add BiDi support in EMR_EXTTEXTOUTW record. wineps: Clip visible rectangle to bitmap size in get_vis_rectangles. wineps: Handle EMR_CREATEPALETTE record in spool files. wineps: Handle EMR_SELECTPALETTE record in spool files. wineps: Handle EMR_SETDIBITSTODEVICE record in spool files. wineps: Handle EMR_STRETCHDIBITS record in spool files. wineps: Handle EMR_REALIZEPALETTE record in spool files. wineps: Handle EMR_RESIZEPALETTE record in spool files. wineps: Handle EMR_SETPALETTEENTRIES record in spool files. gdi32: Use EMR_REALIZEPALETTE to record RealizePalette. gdi32: Fix EMR_CREATEPALETTE recording. gdi32: Store palette in EMR_EOF record. gdi32/tests: Add EMF palette tests. wineps: Fix default device font selection. wineps: Fix return value in path drawing routines. wineps: Continue printing if path drawing function returns error. wineps: Reset memory DC state on every page. localspl: Add support for PRINTER_ATTRIBUTE_RAW_ONLY printer attribute. localspl: Validate datatype in StartDocPrinter. wineps: Reset current position on every page. gdi32: Store the printer info in a structure. gdi32: Improve EMF DC cleanup when CloseEnhMetafile is not called. gdi32: Factor out emf_eof helper. gdi32: Factor out emf_create helper. gdi32: Add support for creating EMF spool files. gdi32: Add GdiIsMetaPrintDC implementation. localspl: Add partial support for PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS attribute. gdi32: Implicitly call StartPage while drawing on printer DC. gdi32: Support creating EMRI_DEVMODE records in spool files. wineps: Handle EMRI_DEVMODE record in spool files. Rémi Bernon (11): imm32/tests: Test that ImmSetOpenStatus doesn't set IMMGWL_IMC. imm32/tests: Check IME UI visibility vs ImmSetCompositionWindow. imm32/tests: Check ImmSetActiveContext effect on INPUTCONTEXT hWnd member. imm32: Forward ImmGetContext to NtUserGetWindowInputContext directly. user32: Move WM_IME_COMPOSITION DefWindowProc handlers in separate helpers. user32: Ignore WM_IME_COMPOSITION from the IME UI window in DefWindowProc. imm32: Don't hide/show IME UI window in ImmSetCompositionWindow. imm32: Move ImmAssociateContext(Ex) around. imm32: Update IME UI window IMMGWL_IMC when focus or HIMC changes. imm32/tests: Add some ImmGenerateMessage tests. imm32: Send messages one by one in ImmGenerateMessage. Shaun Ren (2): include: Add more sapi structs and enums. include: Add ISpTTSEngineSite and ISpTTSEngine interfaces. Stefan Dösinger (14): d3dx9: Use __VA_ARGS__ instead of GCCs named variadics. d3dx9/tests: Use __VA_ARGS__ instead of GCCs named variadics. wined3d: Sync depth stencils to both early and late depth test. wined3d: Avoid VK_IMAGE_LAYOUT_GENERAL. wined3d: Fall back to general layout if necessary. d3d9/tests: Radeon GPUs don't draw from sysmem textures. d3d9/tests: Accept AMD GPU sysmem sample failure in test_mipmap_upload. d3d8/tests: Radeon GPUs don't draw from sysmem textures. d3d8/test: Accept AMD GPU sysmem sample failure in test_mipmap_upload. d3dx9: Load D3DAssemble via GetProcAddress. d3dcompiler/tests: Load D3DAssemble via GetProcAddress. d3dcompiler: Make D3DAssemble a private export. d3d9/tests: AMD GPUs sample the border color of cube textures. d3d9/tests: Accept random depth when using a 3D texture with a 2D sampler. Vova Mshanetskiy (2): winhttp: Support WINHTTP_OPTION_PARENT_HANDLE in request_query_option(). winhttp: Avoid unnecessary cast in connect_query_option(). Zebediah Figura (8): wined3d: Allow retrieving the frontbuffer from a wined3d swapchain. ddraw: Retrieve the frontbuffer directly from wined3d. wined3d: Disable shaderTessellationAndGeometryPointSize. dxgi: Introduce IWineDXGIDeviceParent::register_swapchain_texture() and use it in IDXGIDevice::CreateSurface(). dxgi: Create d3d11 swapchain textures directly from d3d11_swapchain_init(). d3d9: Move surface allocation to d3d9_surface_create(). d3d9: Create sub-resource surfaces manually. d3d9: Pass the container to d3d9_surface_create(). Ziqing Hui (3): winegstreamer: Implement wg_format_from_caps_video_wmv. wingstreamer: Create extra decodebin to decode compressed stream. mfreadwrite: Fix an address of operator typo.