The Wine development release 4.11 is now available. What's new in this release (see below for details): - Updated version of the Mono engine, including Windows.Forms. - More DLLs are built as PE files by default. - Faster implementation of Slim Reader/Writer locks on Linux. - Initial support for enumerating display devices. - Various bug fixes. The source is available from the following locations: https://dl.winehq.org/wine/source/4.x/wine-4.11.tar.xz http://mirrors.ibiblio.org/wine/source/4.x/wine-4.11.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 4.11 (total 17): 8848 SWAT4 Areas that should be in shadow and people are rendered solid black 22253 Horizontal scrolling with the mouse wheel does not work in list views 24211 ispq crashes on 'create account' with devenum enabled and without native qcap 28153 AutoIt v3.x @DesktopRefresh macro returns 0 (device caps VREFRESH hard-coded to 0) 30822 Max Payne 3 not running 34687 Port Royale 2 crashes on startup (SymGetLineFromAddr() returns unix-style path for source file) 34741 Catzilla 1.0 doesn't work: EAccess violation 34742 Catzilla 1.0 doesn't allow to use any display resolutions other than 576p 35477 'epsilon' 64K demo/intro by mercury crashes on start up 39071 7-Zip 15.06 looks broken after being minimized 39337 Legacy of Kain: Soul Reaver crashes at intro video when being run in desktop resolution > 640x480 45218 Fallout 4 Script Extender fails to allocate trampoline buffers 47164 .NET Framework 4.0 installer fails when Wine is compiled with GCC 9.1.1 47167 Chromium Embedded Framework (CEF) applications display no content when wine is compiled with gcc-9 47327 Japanese texts are overlapped in notepad when using bitmap font. 47371 Nero CoverDesigner doesn't install - missing support for BCRYPT_RSA_SIGN_ALGORITHM 47378 ole32: native build (without-mingw) is broken ---------------------------------------------------------------- Changes since 4.10: Akihiro Sagawa (3): usp10: Cache ScriptString_pSize value, again. usp10/tests: Add advance width tests with CJK bitmap font. usp10: Fix advance width when glyph is missing. Alexandre Julliard (168): mf: Build with msvcrt. mfplat: Build with msvcrt. mfplay: Build with msvcrt. mfreadwrite: Build with msvcrt. mgmtapi: Build with msvcrt. midimap: Build with msvcrt. mlang: Build with msvcrt. mmcndmgr: Build with msvcrt. mmdevapi: Build with msvcrt. mmdevldr.vxd: Build with msvcrt. mmsystem: Build with msvcrt. monodebg.vxd: Build with msvcrt. mouse.drv: Build with msvcrt. mpr: Build with msvcrt. mprapi: Build with msvcrt. ntdll: Don't use native subsystem heuristic against builtin modules. fltmgr.sys: Fix duplicate dll flags. ksecdd.sys: Fix duplicate dll flags. msacm: Build with msvcrt. msacm32.drv: Build with msvcrt. msacm32: Build with msvcrt. msadp32.acm: Build with msvcrt. msasn1: Build with msvcrt. mscat32: Build with msvcrt. msctf: Build with msvcrt. msctfp: Build with msvcrt. msdaps: Build with msvcrt. msdelta: Build with msvcrt. msdmo: Build with msvcrt. msdrm: Build with msvcrt. msftedit: Build with msvcrt. msg711.acm: Build with msvcrt. ntdll: Make the __wine_spec_unimplemented_stub() copy cdecl. imagehlp/tests: Remove a workaround for Win95. mshtml: Build with msvcrt. msi: Build with msvcrt. msident: Build with msvcrt. msimg32: Build with msvcrt. msimtf: Build with msvcrt. msisip: Build with msvcrt. msisys.ocx: Build with msvcrt. msls31: Build with msvcrt. msnet32: Build with msvcrt. mspatcha: Build with msvcrt. msports: Build with msvcrt. msrle32: Build with msvcrt. msscript.ocx: Build with msvcrt. mssign32: Build with msvcrt. mssip32: Build with msvcrt. mstask: Build with msvcrt. jscript: Consistently use wcscmp() instead of lstrcmpW(). server: Fix the returned error code for an invalid NT header offset. msvcp90: Avoid depending on config.h for the __builtin_clz check. msvcm: Build with msvcrt. msvfw32: Build with msvcrt. msvidc32: Build with msvcrt. msvideo: Build with msvcrt. mswsock: Build with msvcrt. msxml: Build with msvcrt. msxml2: Build with msvcrt. msxml4: Build with msvcrt. msxml6: Build with msvcrt. mtxdm: Build with msvcrt. ncrypt: Build with msvcrt. nddeapi: Build with msvcrt. ndis.sys: Build with msvcrt. netcfgx: Build with msvcrt. netprofm: Build with msvcrt. newdev: Build with msvcrt. winebuild: Add a -munix option. winebuild: Don't import standard C functions in Unix mode. ntoskrnl: Make the standard C functions available for importing. ninput: Build with msvcrt. normaliz: Build with msvcrt. npmshtml: Build with msvcrt. npptools: Build with msvcrt. ntdsapi: Build with msvcrt. ntoskrnl: Build with msvcrt. ntprint: Build with msvcrt. objsel: Build with msvcrt. odbccp32: Build with msvcrt. ole2: Build with msvcrt. ole2disp: Build with msvcrt. ole2nls: Build with msvcrt. ole32: Build with msvcrt. oleacc: Build with msvcrt. oleaut32: Build with msvcrt. olecli: Build with msvcrt. olecli32: Build with msvcrt. oledb32: Build with msvcrt. oledlg: Build with msvcrt. olepro32: Build with msvcrt. olesvr: Build with msvcrt. olesvr32: Build with msvcrt. olethk32: Build with msvcrt. packager: Build with msvcrt. pdh: Build with msvcrt. photometadatahandler: Build with msvcrt. pidgen: Build with msvcrt. powrprof: Build with msvcrt. printui: Build with msvcrt. prntvpt: Build with msvcrt. propsys: Build with msvcrt. pstorec: Build with msvcrt. makefiles: Support mixing Unix and msvcrt headers in a single module. winecrt0: Build with msvcrt. winecrt0: Provide our own setjmp/longjmp functions for exception handling. ntdll: Make wine_server_call() cdecl. ntdll: Make the standard C functions available for importing. kernelbase: Build with msvcrt. qmgr: Build with msvcrt. qmgrprxy: Build with msvcrt. query: Build with msvcrt. qwave: Build with msvcrt. rasapi32: Build with msvcrt. rasdlg: Build with msvcrt. regapi: Build with msvcrt. resutils: Build with msvcrt. riched20: Build with msvcrt. riched32: Build with msvcrt. rpcrt4: Build with msvcrt. rsaenh: Build with msvcrt. rstrtmgr: Build with msvcrt. rtutils: Build with msvcrt. ntdll: Use .so builtin if found instead of falling back to the installed PE file. kernelbase: Revert some incorrect differences with shlwapi. samlib: Build with msvcrt. sapi: Build with msvcrt. sas: Build with msvcrt. scarddlg: Build with msvcrt. sccbase: Build with msvcrt. schannel: Build with msvcrt. schedsvc: Build with msvcrt. scrobj: Build with msvcrt. scrrun: Build with msvcrt. scsiport: Build with msvcrt. sensapi: Build with msvcrt. serialui: Build with msvcrt. setupx: Build with msvcrt. sfc: Build with msvcrt. sfc_os: Build with msvcrt. shcore: Build with msvcrt. shdocvw: Build with msvcrt. shell: Build with msvcrt. shlwapi: Import string functions from kernelbase. shlwapi: Import path functions from kernelbase. shlwapi: Import URL functions from kernelbase. shlwapi: Import registry functions from kernelbase. shlwapi: Import QISearch() from kernelbase. shlwapi: Build with msvcrt. slbcsp: Build with msvcrt. slc: Build with msvcrt. snmpapi: Build with msvcrt. sound.drv: Build with msvcrt. spoolss: Build with msvcrt. srclient: Build with msvcrt. sspicli: Build with msvcrt. sti: Build with msvcrt. storage: Build with msvcrt. stress: Build with msvcrt. strmdll: Build with msvcrt. svrapi: Build with msvcrt. sxs: Build with msvcrt. system.drv: Build with msvcrt. api-ms-win-core-kernel32-legacy-l1-1-1: Use proper forwards. winebuild: Add -import entry point flag to generate hotpatchable import thunks. shlwapi: Add -import flag on functions imported from kernelbase. version: Move implementation into kernelbase. Alistair Leslie-Hughes (7): dpnet: Remove dead code (Coverity). dinput: Ensure buffer doesn't overflow (Coverity). wininet: Remove unsued flag HTTP_ADDHDR_FLAG_COALESCE. advapi32: Don't read a value that might be uninitialized (Coverity). mshtml: Remove redundant assignments. dbghelp: Return a dos path from SymGetLineFromAddr. mshtml: Implement IHTMLDocument2 put/get_bgColor. Andrew Eikum (5): winebus.sys: Close SDL handles when a device is removed. kernel32: Link against RT_LIBS. dxgi/tests: Add tests for setting the fullscreen state of swapchains with destroyed windows. dxgi: Return DXGI_ERROR_NOT_CURRENTLY_AVAILABLE if setting the fullscreen state failed. wined3d: Validate that we got a valid window in wined3d_device_setup_fullscreen_window(). Aric Stewart (1): winemac.drv: Send state change notifications from ImeSelect. Dmitry Timoshkov (5): mshtml: Fix a typo. mshtml: Add better stub for HTMLDocument7::get_onmsthumbnailclick. mshtml: Add recently added GUIDs to debugstr_mshtml_guid(). mshtml: Replace a useless trace with a slightly better one. mshtml: Add support for DIID_HTMLDocumentEvents2 connection point sink. Ethan Lee (1): xaudio2: Fix some TRACE calls erroneously marked as stubs. Gabriel Ivăncescu (7): comctl32/listbox: Fix mouse wheel scrolling for multi-column listboxes. user32/listbox: Fix mouse wheel scrolling for multi-column listboxes. comctl32/edit: Get rid of useless casts. user32/edit: Get rid of useless casts. comctl32/listview: Get rid of useless casts. comctl32/treeview: Get rid of useless casts. ntdll: Add support for EXT4 per directory case folding. Hans Leidekker (3): bcrypt: Add stub implementations of BCryptEnumContextFunctions and BCryptFreeBuffer. bcrypt: Add support for BCRYPT_RSA_SIGN_ALGORITHM. msi/tests: Accept case variations for path properties. Henri Verbeet (47): wined3d: Pass a wined3d_context_gl structure to context_enable_clip_distances(). wined3d: Pass a wined3d_context_gl structure to context_end_transform_feedback(). wined3d: Pass a wined3d_context_gl structure to context_map_bo_address(). wined3d: Pass a wined3d_context_gl structure to context_unload_tex_coords(). wined3d: Upload texture data through the texture ops in wined3d_cs_exec_update_sub_resource(). wined3d: Pass a wined3d_context_gl structure to context_unmap_bo_address(). wined3d: Pass a wined3d_context_gl structure to wined3d_texture_prepare_texture(). wined3d: Pass a wined3d_context_gl structure to wined3d_texture_gl_apply_sampler_desc(). wined3d: Pass a wined3d_context_gl structure to wined3d_texture_gl_bind(). wined3d: Upload texture data through the texture ops in surface_convert_format(). wined3d: Pass a wined3d_context_gl structure to wined3d_texture_gl_set_compatible_renderbuffer(). wined3d: Pass a wined3d_context_gl structure to wined3d_sampler_bind(). wined3d: Pass a wined3d_context_gl structure to context_attach_gl_texture_fbo(). wined3d: Get rid of the unused "gl_info" argument to compute_texture_matrix(). wined3d: Upload texture data through the texture ops in wined3d_texture_upload_from_texture(). wined3d: Pass a wined3d_context_gl structure to context_attach_depth_stencil_fbo(). wined3d: Pass a wined3d_context_gl structure to context_attach_surface_fbo(). wined3d: Pass a wined3d_context_gl structure to context_set_fbo_key_for_render_target(). wined3d: Pass a wined3d_context_gl structure to context_generate_fbo_key(). wined3d: Download texture data through the texture ops in wined3d_texture_download_from_texture(). wined3d: Pass a wined3d_context_gl structure to context_create_fbo_entry(). wined3d: Pass a wined3d_context_gl structure to context_apply_draw_buffers(). wined3d: Pass a wined3d_context_gl structure to context_set_render_offscreen(). wined3d: Pass a wined3d_context_gl structure to context_apply_blit_projection(). wined3d: Use texture2d_load_sysmem() in texture1d_load_location(). wined3d: Pass a wined3d_context_gl structure to context_bind_unordered_access_views(). wined3d: Pass a wined3d_context_gl structure to context_pause_transform_feedback(). wined3d: Pass a wined3d_context_gl structure to context_setup_target(). wined3d: Pass a wined3d_context_gl structure to draw_primitive_arrays(). wined3d: Use wined3d_texture_gl_load_sysmem() in texture3d_load_location(). wined3d: Pass a wined3d_context_gl structure to draw_indirect(). wined3d: Pass a wined3d_context_gl structure to context_unload_vertex_data(). wined3d: Pass a wined3d_context_gl structure to context_load_vertex_data(). wined3d: Pass a wined3d_context_gl structure to context_unload_numbered_array(). wined3d: Use texture2d_load_texture() in texture1d_load_location(). wined3d: Do not acquire/release the focus window in wined3d_swapchain_set_fullscreen(). wined3d: Pass a wined3d_context_gl structure to context_unload_numbered_arrays(). wined3d: Pass a wined3d_context_gl structure to context_draw_shaded_quad(). wined3d: Pass a wined3d_context_gl structure to context_draw_textured_quad(). wined3d: Pass a wined3d_context_gl structure to destroy_dummy_textures(). wined3d: Use wined3d_texture_gl_load_texture() in texture3d_load_location(). d3drm: Introduce a d3drm_matrix structure. wined3d: Pass a wined3d_context_gl structure to shader_arb_ps_local_constants(). wined3d: Pass a wined3d_context_gl structure to shader_arb_vs_local_constants(). wined3d: Pass a wined3d_context_gl structure to shader_arb_load_constants_internal(). wined3d: Pass a wined3d_context_gl structure to find_arb_pshader(). wined3d: Merge the wined3d_texture_gl texture ops implementations. Huw D. M. Davies (2): kernel32/tests: Add a test for GetTickCount(). user32: Don't access a potentially uninitialized padded_border. Jacek Caban (1): services: Support delayed autostart services. Jarkko Korpi (1): wininet: Silence no support on this platform message. Jeff Smith (6): d3drm: Implement the BEFORE and AFTER frame transform combine types. d3drm: Validate that the transformation is affine in d3drm_frame3_AddTransform(). d3drm: Implement d3drm_frame3_AddTranslation(). d3drm: Implement d3drm_frame3_AddScale(). d3drm: Implement d3drm_frame3_AddRotation(). d3drm: Implement d3drm_frame3_Transform(). Martin Liska (1): include: Avoid compound literals for WCHAR strings. Michael Müller (1): ddraw: Properly set DDCAPS.ddsOldCaps in ddraw7_GetCaps(). Michael Stefaniuc (1): winebuild: Use the now available ARRAY_SIZE() macro. Nikolay Sivov (6): mfplat: Add MFRegisterLocalByteStreamHandler(). mfplat: Give priority to local scheme handlers. mfplat: Give priority to local bytestream handlers. mf: Add support for IMFSampleGrabberSinkCallback2. mf: Forward grabber clock state change calls to user callback. mf/tests: Add sample processing tests for Video Processor. Paul Gofman (11): ddraw: Factor out viewport_alloc_active_light_index() function. ddraw: Do not limit inactive light count in viewport. ddraw: Always activate the light when requested replacing some previous light. ddraw/tests: Test adding a number of lights to viewport in ddraw4. ddraw: Increase maximum active light count. wined3d: Use 3 component norm for 'nrm' opcode in GLSL backend. wined3d: Do not zero 'w' with zero norm for 'nrm' opcode in GLSL backend. d3d9/tests: Add test for 'nrm' opcode. ddraw: Store _TEXTUREMAPBLEND state instead of guessing it from wined3d states. ddraw: Turn off legacy texture blending in d3d_device3_SetTextureStageState(). ddraw: Do not modify any states for _TEXTUREMAPBLEND if application sets the same value. Piotr Caban (1): libwine: Fix NORM_IGNORESYMBOLS flag handling in compare_weights. Richard Pospesel (1): widl: Use FC_CHAR rather than FC_BYTE for boolean typedef to match midl.exe output. Roberto Pungartnik (2): po: Update Brazilian Portuguese translation. po: Update Brazilian Portuguese translation. Rémi Bernon (10): ntdll/tests: Move NtAllocateVirtualMemory tests that were in kernel32. ntdll/tests: Add NtAllocateVirtualMemory tests for zero_bits behavior. ntdll: Clarify NtAllocateVirtualMemory zero_bits parameter semantics. ntdll/tests: Cleanup NtAllocateVirtualMemory related tests. kernel32/tests: Fix some NtMapViewOfSection tests expectations, and add results for w1064v1809. ntdll/tests: Move NtMapViewOfSection tests from kernel32/tests. ntdll/tests: Add more NtMapViewOfSection tests with zero_bits. ntdll: Clarify NtMapViewOfSection zero_bits parameter semantics. ntdll: Pass the alignment parameter down to map_view instead of mask. hid: Fill the HIDD_ATTRIBUTES Size member, and add a test for expected size. Tim Schumacher (1): wininet: Hide GetCookie flag fixme for HTTPONLY cookies. Vincent Povirk (1): mscoree: Update Wine Mono to 4.9.0. Zebediah Figura (66): ucrtbase/tests: Add some tests for __stdio_common_vsscanf(). ucrtbase: Write the %hh prefix as a single char. ntdll: Remove no longer used interlocked_dec_if_nonzero(). ntdll: Add a futex-based implementation of SRW locks. ntdll: Try to avoid an unnecessary syscall in fast_release_srw_exclusive(). qedit/samplegrabber: Use BaseFilterImpl_QueryVendorInfo(). quartz/filtergraph: Use the type info cache for IBasicAudio. quartz/filtergraph: Use the type info cache for IVideoWindow. quartz/filtergraph: Use the type info cache for IBasicVideo. strmbase: Don't increment the pin reference count in filter_get_pin(). strmbase: Add default implementations of IUnknown methods for IBasicVideo. quartz: Use strmbase IUnknown methods for IBasicVideo. strmbase: Get rid of the "lpVtbl" parameter to BaseControlVideo_Init(). strmbase: Add default implementations of IUnknown methods for IVideoWindow. quartz: Use strmbase IUnknown methods for IVideoWindow. strmbase: Factor out strmbase_pin_init(). strmbase: Return void from InputPin_Init(). strmbase: Factor out strmbase_sink_cleanup(). qcap/avico: Store the sink pin inline in the AviCompressor structure. qcap/smartteefilter: Store the sink pin inline in the AviCompressor structure. widl: Mark unions, user types, and ranges as IsSimpleRef. widl: Remove the unused "indent" parameter from write_type_tfs(). qcap/avimux: Use strmbase_sink_init() and heap_alloc_zero() in create_input_pin(). strmbase: Return void from OutputPin_Init(). strmbase: Factor out strmbase_source_cleanup(). qcap/avico: Store the source pin inline in the AviCompressor structure. qcap/smartteefilter: Store the capture source pin inline in the SmartTeeFilter structure. qcap/smartteefilter: Store the preview source pin inline in the SmartTeeFilter structure. dmusic/tests: Add some tests for the master clock. dmusic: Store the master clock as an IReferenceClock pointer. dmusic: Implement the master clock object. qcap/avimux: Store the source pin and AVI data inline in the AviMux structure. quartz/filesource: Share pin and filter reference counts. quartz/parser: Share sink pin and filter reference counts. quartz/parser: Share source pin and filter reference counts. strmbase/transform: Share pin and filter reference counts. ntdll: Implement RtlCreateUserStack() and RtlFreeUserStack(). kernel32: Use RtlCreateUserStack(). ntdll/tests: Add tests for RtlCreateUserStack(). strmbase/renderer: Share pin and filter reference counts. qcap/vfwcapture: Share pin and filter reference counts. winegstreamer: Share sink pin and filter reference counts. winegstreamer: Share source pin and filter reference counts. wineqtdecoder: Share sink pin and filter reference counts. winex11: Remove redundant calls to update_key_state(). winex11: Update the state of all keys on KeymapNotify. wineqtdecoder/qtsplitter: Share source pin and filter reference counts. strmbase: Share pin and filter reference counts in base pin reference counting methods. strmbase: Use base pin reference counting methods. quartz: Use strmbase pin reference counting methods. qcap: Use strmbase pin reference counting methods. winegstreamer: Use strmbase pin reference counting methods. wineqtdecoder: Use strmbase pin reference counting methods. quartz/filesource: Store the source pin inline in the AsyncReader structure. quartz/filesource: Cancel I/O from all threads in IAsyncReader::BeginFlush(). quartz/filesource: Add a test for cross-thread asynchronous read requests. quartz/systemclock: Create the advise thread after the events it depends on. strmbase/transform: Store the pins inline in the TransformFilter structure. strmbase/renderer: Remove some duplicated locks. strmbase/renderer: Store the sink pin inline in the BaseRenderer structure. quartz/filtergraph: Add tests for asynchronous state change. d3d11/tests: Test creating and rendering to a swapchain on the desktop window. d3d10core/tests: Test creating and rendering to a swapchain on the desktop window. d3d9/tests: Test creating and rendering to a swapchain on the desktop window. d3d8/tests: Test creating and rendering to a swapchain on the desktop window. wined3d: Use a backup device context for swapchains created on the desktop window. Zhiyi Zhang (11): winex11.drv: Add Xinerama display device handler. winex11.drv: Initialize GPU registry data. winex11.drv: Initialize adapter registry data. winex11.drv: Initialize monitor registry data. winex11.drv: Handle display device changes. user32: Improve EnumDisplayDevicesW stub. user32: Implement EnumDisplayDevicesW(). dxgi/tests: Add window association tests. dxgi: Implement dxgi_factory_GetWindowAssociation(). dxgi: Retrieve swapchains' fullscreen state from wined3d. dxgi: Implement Alt+Enter handling. -- Alexandre Julliard julliard@xxxxxxxxxx