wined3d: Do not use atomics to update the resource bind count.
[wine.git] / ANNOUNCE
blobf1c548619b62b32fdda50112edc047eb584df423
1 The Wine development release 8.19 is now available.
3 What's new in this release:
4   - Mono engine updated to version 8.1.0.
5   - More DirectMusic implementation.
6   - Various bug fixes.
8 The source is available at:
10   https://dl.winehq.org/wine/source/8.x/wine-8.19.tar.xz
12 Binary packages for various distributions will be available from:
14   https://www.winehq.org/download
16 You will find documentation on https://www.winehq.org/documentation
18 You can also get the current source directly from the git
19 repository. Check https://www.winehq.org/git for details.
21 Wine is available thanks to the work of many people. See the file
22 AUTHORS in the distribution for the complete list.
24 ----------------------------------------------------------------
26 Bugs fixed in 8.19 (total 44):
28  - #8174   Ares P2P 2.x embedded media player fails to play .mpg files
29  - #9027   No sound for rise of nations - all versions
30  - #23489  Buccaneer: quits silently when entering the Tavern
31  - #32395  Neverwinter Nights 2 : Broken sky with anti-aliasing turned on
32  - #32896  Serious Sam: The Random Encounter has no sound
33  - #34751  Aura: Fate of the Ages: sounds aren't played, but music works fine
34  - #43372  valgrind shows a definite leak in dlls/d3dx9_36/tests/texture.c
35  - #45072  Enabling csmt causes 100% CPU use in MikuMikuDance
36  - #45135  Black Rockman Shooter has no sound
37  - #45144  GED Keeper 2 (.NET 2.x based genealogical database app) fails to run with Wine-Mono
38  - #45893  Midtown Madness: Extremely Slow with csmt on
39  - #47767  Airport Mania First Flight - Very long loading times and awful performance
40  - #49731  Shtriga: Summer Camp freezes with a black screen (PE-build only)
41  - #49804  Multiple WPF 4.5+ .NET applications fail to run with Wine-Mono due to missing support of Ribbon control 'System.Windows.Controls.Ribbon' (OpenGL Extensions Viewer 6.1.2, CapFrameX v1.6.0)
42  - #52014  Memento Mori freezes on launch
43  - #52396  Stack overflows when running any 64-bit .Net 6 (.Net Core) program
44  - #53264  mmdevapi:capture - test_audioclient() fails systematically on Windows 10 1909+
45  - #54704  Black screen with Dungeon Keeper 2 and Wine v8.4
46  - #55223  d3dx10_34:d3dx10, d3dx10_35:d3dx10, d3dx10_39:d3dx10 & d3dx10_42:d3dx10 sometimes fail on w11pro64-amd
47  - #55228  kernel32:loader - test_ResolveDelayLoadedAPI() fails on Windows 10+
48  - #55267  gdi32:font - The 64-bit test_RealizationInfo() gets invalid parameter errors on Windows 8+
49  - #55269  ntdll:info - The 32-bit test_query_process_debug_port() gets a bad len on Windows 8 64-bit
50  - #55555  secur32:secur32 - test_ticket_cache() crashes when Kerberos support is missing
51  - #55560  The 64-bit dbghelp:dbghelp times out in Wine
52  - #55577  advapi32:registry - The 64-bit test_performance_keys() sometimes crashes on Windows 10
53  - #55580  The 32-bit uiautomationcore:uiautomation sometimes times out in Wine
54  - #55605  winmm:mci sometimes gets an assertion in GitLab CI's Wine tests
55  - #55650  dbghelp:dbghelp fails on macOS
56  - #55654  Multiple Direct3D 8/9 applications have increased memory usage / run out of memory since Wine 8.14
57  - #55688  dmusic:dmusic - test_default_gm_collection() crashes on macOS
58  - #55718  Word 2007 is not able to print multiple copies of a page
59  - #55720  msxml3:domdoc - test_domnode() fails in Wine
60  - #55722  dmime:dmime - test_band_track_play() fails on macOS
61  - #55725  The 32-bit amstream:amstream gets an assert and times out on the GitLab CI
62  - #55744  psapi:psapi_main fails in Wine
63  - #55745  tasklist.exe:tasklist - test_filter() fails to list ntdll.dll in Wine
64  - #55746  wscript.exe:run - Dispatch_Invoke() gets wrong WScript.FullName in Wine
65  - #55771  uxtheme:system - test_ShouldSystemUseDarkMode() fails on Windows 7 to 10 1909
66  - #55772  uxtheme:system - test_EnableThemeDialogTexture() fails on Windows 7
67  - #55777  user32:win - test_GetWindowModuleFileName() sometimes unexpectedly gets a filename on Windows 7
68  - #55790  Unreal II The Awakening: general protection fault when loading a level
69  - #55792  Tron 2.0 crashes before the menu appears
70  - #55808  Catalan translation inserted twice in wine.desktop
71  - #55817  Myst V (GOG.com, demo): access violation when NPC begins to talk
73 ----------------------------------------------------------------
75 Changes since 8.18:
77 Akihiro Sagawa (1):
78       cmd: Reset totals after trailer output.
80 Alex Henrie (13):
81       evr: Use debugstr_fourcc instead of debugstr_an.
82       iccvid: Use debugstr_fourcc instead of debugstr_an.
83       d3d10: Use debugstr_fourcc instead of debugstr_an.
84       dwrite: Use the debugstr_fourcc function instead of reimplementing it.
85       d3dx9_36: Use debugstr_fourcc instead of debugstr_an.
86       d3dcompiler_43: Use debugstr_fourcc instead of debugstr_an.
87       loader: Associate Wine with batch files.
88       winemenubuilder: Disallow desktop integration for batch files.
89       loader: Translate wine.desktop to Catalan.
90       loader: Add separating dash to Spanish translation of wine.desktop.
91       win32u: Use debugstr_fourcc instead of debugstr_an.
92       wined3d: Use debugstr_fourcc instead of debugstr_an.
93       commdlg: Set lCustData the same in GetSaveFileName as GetOpenFileName.
95 Alexandre Julliard (20):
96       makefiles: Always use the global SOURCES variable for .man.in files.
97       makefiles: Always use the global SOURCES variable for .svg files.
98       makefiles: Always use the global SOURCES variable for .l files.
99       makefiles: Always use the global SOURCES variable for .y files.
100       ntdll: Move the relay trace on thread startup to LdrInitializeThunk().
101       ntdll: Move RtlUserThreadStart implementation to the CPU backends.
102       ntdll: Use .seh handler in RtlUserThreadStart on ARM64.
103       ntdll: Also send segment registers to the server on suspend.
104       zydis: Disable assertions.
105       dbghelp: Fix a compiler warning on ARM64.
106       Revert "loader: Translate wine.desktop to Catalan".
107       ntdll: Simplify platform checks for exception handling functions.
108       msvcrt: Simplify platform checks for exception handling functions.
109       msvcrt: Export more exception handling functions on ARM platforms.
110       kernel32: Export the Ums functions on ARM64.
111       kernelbase: Export the extended context functions on all platforms.
112       ntdll: Export RtlCopyMemory on ARM platforms.
113       vcruntime140_1: Only build for x86-64.
114       winebuild: Always use .balign for alignment.
115       shlwapi: Remove unneeded UNALIGNED attributes.
117 Alexandros Frantzis (2):
118       winewayland.drv: Ensure outputs can access xdg information robustly.
119       winewayland.drv: Ensure the logical output dimensions have sane values.
121 Alistair Leslie-Hughes (4):
122       msxml: Always increase error count when detected.
123       msxml3: Don't call qsort if we have no data (Coverity).
124       msxml3: Move tid_NULL out of possible enum values.
125       msxml3: Do not leak bind context on error paths (Coverity).
127 Arkadiusz Hiler (1):
128       winex11.drv: Send missed KEYUP events on KeymapNotify.
130 Bartosz Kosiorek (4):
131       gdiplus: Optimize GDI32_GdipDrawPath (via prepare_dc function).
132       gdiplus: Improve performance of units_to_pixels by not using division.
133       gdiplus/tests: Add test for GdipIsOutlineVisiblePathPoint.
134       gdiplus: Fix transformation in GdipIsOutlineVisiblePathPoint.
136 Brendan Shanks (9):
137       configure: Only build Wayland if linux/input.h is present.
138       winemac.drv: Replace sprintf with snprintf to avoid deprecation warnings.
139       makedep: Replace sprintf with snprintf to avoid a deprecation warning on macOS.
140       ctapi32: Ensure unixlib function tables and enum stay in sync.
141       dnsapi: Ensure unixlib function tables and enum stay in sync.
142       wpcap: Ensure unixlib function tables and enum stay in sync.
143       winscard: Ensure unixlib function tables and enum stay in sync.
144       winemac.drv: Disable declaration-after-statement warnings in ObjC files.
145       winemac.drv: Fix minimizing windows when Stage Manager is enabled.
147 Connor McAdams (15):
148       uiautomationcore: Release node lresult upon failure to allocate a node in uia_node_from_lresult().
149       uiautomationcore/tests: Add tests for COM API EVENT_OBJECT_FOCUS translation.
150       uiautomationcore: Potentially raise focus event for serverside providers in response to EVENT_OBJECT_FOCUS.
151       uiautomationcore: Potentially raise focus event on the currently focused serverside provider in response to EVENT_OBJECT_FOCUS.
152       uiautomationcore: Add support for translating EVENT_OBJECT_FOCUS for native MSAA IAccessibles.
153       uiautomationcore/tests: Add tests for cached value helper functions in the COM API.
154       uiautomationcore: Implement IUIAutomationElement::get_CachedControlType.
155       uiautomationcore: Implement IUIAutomationElement::get_CachedHasKeyboardFocus.
156       uiautomationcore: Implement IUIAutomationElement::get_CachedIsKeyboardFocusable.
157       uiautomationcore: Implement IUIAutomationElement::get_CachedName.
158       uiautomationcore: Implement IUIAutomationElement::get_CachedBoundingRectangle.
159       uiautomationcore: Remove accidentally leftover FIXME.
160       uiautomationcore: Only print FIXME messages for missing default clientside providers once.
161       uiautomationcore/tests: Fix test failure on Win10v1709.
162       uiautomationcore: Don't return failure from ::get_FragmentRoot stub on the default BaseHwnd provider.
164 Daniel Lehman (1):
165       advapi32/tests: Add ReadEventLogW tests for direction.
167 Dmitry Timoshkov (4):
168       crypt32: Avoid truncating unicode chars.
169       crypt32/tests: Add some tests for quoted RDN values.
170       crypt32: Add support for CERT_NAME_STR_NO_QUOTING_FLAG to CertNameToStr().
171       cryptui: Use CertNameToStr(CERT_NAME_STR_NO_QUOTING_FLAG) to disable quoting.
173 Eric Pouech (9):
174       wbemprox: Use correct string id.
175       dsound: Forward error code when device cannot be found.
176       quartz: Return correct error when no audio devices are present.
177       mmdevapi: Don't fail when no audio backends are present.
178       dbghelp: Rename internal field (system -> host).
179       dbghelp: Use is_host_64bit for handling bitness of mach-o libs.
180       dbghelp: Set the machine type for mach-O modules.
181       dbghelp: Simplified module_find_by_addr().
182       dbghelp: Remove unneeded parameter to pe_map_file.
184 Esme Povirk (2):
185       user32/tests: Reduce size demand in test_hvredraw.
186       mscoree: Update Wine Mono to 8.1.0.
188 Fabian Maurer (2):
189       mf/tests: Increase buffer to prevent stack corruption.
190       ntdll: Add WinSqmSetIfMaxDWORD stub.
192 Gabriel Ivăncescu (4):
193       jscript: Fix Array.map when last element doesn't exist.
194       jscript: Fix Array.reduce when last element doesn't exist.
195       mshtml: Set outer window to uninitialized page when document obj is released.
196       mshtml: Return proper errors when navigating with no browser.
198 Gerald Pfeifer (1):
199       readme: Update FreeBSD information.
201 Hans Leidekker (3):
202       kernelbase: Trace global memory counters in decimal.
203       advapi32/tests: Get rid of workarounds for old Windows versions.
204       advapi32/tests: Skip WoW64 registry tests on 32-bit.
206 Helix Graziani (1):
207       uxtheme/tests: Skip the test if the SystemUsesLightTheme value isn't found.
209 Jacek Caban (9):
210       dwrite: Use DWRITE_FONT_FEATURE_TAG for tags argument type in shape_get_typographic_features.
211       dwrite/tests: Avoid implicit DWRITE_RENDERING_MODE to DWRITE_RENDERING_MODE1 casts.
212       dwrite: Avoid implicit casts between DWRITE_RENDERING_MODE and DWRITE_RENDERING_MODE1.
213       d2d1/tests: Use D2D1_INTERPOLATION_MODE constants in DrawImage calls.
214       d2d1: Pass interpolation mode as D2D1_INTERPOLATION_MODE to d2d_device_context_draw_bitmap.
215       d2d1: Don't cast D2D1_THREADING_MODE to D2D1_FACTORY_TYPE in D2D1CreateDevice.
216       wined3d: Use return type to return result from read_dword.
217       wined3d: Remove unused parallel_point_count variable.
218       wined3d: Use unsigned type for res_type bit field.
220 Jeff Smith (4):
221       gdiplus/tests: Add tests related to setting the page tranform.
222       gdiplus: Implement GdipResetPageTransform.
223       gdiplus: Fix a GdipSetPageScale return status.
224       gdiplus: Fix GdipSetPageUnit parameter validation.
226 Jinoh Kang (1):
227       ntdll/tests: Use win_skip() for missing APIs in test_query_process_debug_port_custom_dacl.
229 Louis Lenders (1):
230       uxtheme: Add ShouldAppsUseDarkMode.
232 Matteo Bruni (5):
233       wined3d: Fix handling of system-memory GL vertex buffers.
234       wined3d: Handle NULL push constant buffers with the ARB shader backend.
235       wined3d: Allow FFP blits to non-render targets with the 'none' shader backend.
236       wined3d: Implement shadow sampling for the ARB shader backend.
237       wined3d: Don't skip setting clip planes if the view transform state is dirty.
239 Mohamad Al-Jaf (16):
240       windows.media.mediacontrol/tests: Remove flakey ref count test.
241       include: Add ISystemMediaTransportControlsDisplayUpdater interface definition.
242       windows.media.mediacontrol: Implement ISystemMediaTransportControls::get_DisplayUpdater().
243       windows.media.mediacontrol/tests: Add ISystemMediaTransportControlsDisplayUpdater::get/put_Type() tests.
244       windows.media.mediacontrol: Implement ISystemMediaTransportControlsDisplayUpdater::get/put_Type().
245       include: Add IMusicDisplayProperties interface definition.
246       windows.media.mediacontrol: Implement ISystemMediaTransportControlsDisplayUpdater::get_MusicProperties().
247       windows.media.mediacontrol/tests: Add IMusicDisplayProperties::get/put_Title() tests.
248       windows.media.mediacontrol: Implement IMusicDisplayProperties::get/put_Title().
249       windows.media.mediacontrol/tests: Add IMusicDisplayProperties::get/put_Artist() tests.
250       windows.media.mediacontrol: Implement IMusicDisplayProperties::get/put_Artist().
251       include: Add IMusicDisplayProperties2 interface definition.
252       windows.media.mediacontrol: Add IMusicDisplayProperties2 stub interface.
253       windows.media.mediacontrol/tests: Add IMusicDisplayProperties2::get/put_AlbumTitle() tests.
254       windows.media.mediacontrol: Implement IMusicDisplayProperties2::get/put_AlbumTitle().
255       windows.media.mediacontrol: Return success in ISystemMediaTransportControlsDisplayUpdater::Update().
257 Nikolay Sivov (7):
258       mfmediaengine/tests: Use a single helper to create engine instances.
259       include: Add IMFMediaEngineAudioEndpointId definition.
260       mfmediaengine: Keep engine extension pointer.
261       mfmediaengine: Use extension object in CanPlayType().
262       maintainers: Add EVR to the Media Foundation section.
263       mfmediaengine: Mask some source flags returned from GetResourceCharacteristics().
264       d3d10_1/tests: Add some more tests for fx_4_1 blend states.
266 Paul Gofman (8):
267       ntdll: Use .seh handler instead of __TRY in RtlUserThreadStart() on x64.
268       ntdll: Set EH_NESTED_CALL flag in call_stack_handlers() on x64.
269       ntdll: Use .seh handler in call_handler() on x64.
270       ntdll/tests: Add test for collided unwind.
271       ntdll: Use .seh handler in call_unwind_handler() on x64.
272       winegstreamer: Add AVDecVideoAcceleration_H264 attribute for h264 decoder MFT.
273       ntdll: Define heap block's BLOCK_FLAG_LFH as 0x80.
274       shell32: Use SearchPathW() for %l/%L in SHELL_ArgifyW().
276 Piotr Caban (1):
277       gdi32: Fix leak in GdiDeleteSpoolFileHandle.
279 Rémi Bernon (56):
280       include: Fix debugstr_fourcc printf format to print at most 4 chars.
281       dmime: Rewrite message thread with a condition variable.
282       dmusic: Set synth sink master clock when creating port.
283       dmsynth: Do nothing in IDirectMusicSynth_SetMasterClock.
284       dmusic: Forward IDirectMusicPort_Activate to synth and sink.
285       dmime: Use port latency time for messages with -1 time.
286       dmime: Update performance latency time with port latency.
287       dmime: Use latency time to decide when to process messages.
288       dmsynth: Create a render thread on sink activation.
289       dmsynth: Implement sink rendering to DirectSound buffer.
290       dmsynth: Correctly lookup instrument from the default drum bank.
291       dmsynth: Avoid using fluid_ prefix for internal helpers.
292       dmsynth: Fix DLS2 to FluidSynth conversion for CONN_SRC_CCx.
293       dmsynth: Fix FluidSynth generators for direct connections.
294       dmsynth: Convert modulator values from DLS2 to SF2 convention.
295       dmsynth: Set default modulators according to the DLS2 spec.
296       dmband: Download segment tracks if performance auto-download is set.
297       dmband: Set DMUS_PATCH_PMSG bank LSB/MSB from instrument patch.
298       dmime: Only use index if group is set in IDirectMusicSegment_SetParam.
299       dmime: Don't interrupt track iteration if SetParam failed.
300       dmime: Adjust MIDI message time with DMUS_NOTE_PMSG nOffset.
301       dmusic: Use a dmusic_midi.h header for MIDI messages.
302       dmime: Translate some DMUS_CURVE_PMSG messages to MIDI.
303       dmime: Remove FIXME from methods now mostly implemented.
304       dmime: Avoid crashing when purging notification messages.
305       dmime: Return S_OK from wave track SetParam GUID_UnloadFromAudioPath.
306       dmime: Return hr from wave track SetParam GUID_DownloadToAudioPath.
307       dmusic: Implement IDirectMusicObject interface on wave objects.
308       dmusic: Use the IDirectMusicObject interface for waves.
309       dswave: Use the dmusic wave object implementation.
310       dmime: Avoid releasing the newly created graph twice.
311       dmime/tests: Remove flaky track playing state test.
312       dmime/tests: Avoid checking message segment state reference count.
313       dmime/tests: Ignore failure on missing gm.dls in test_band_track_play.
314       dmusic/tests: Skip test_default_gm_collection if gm.dls is missing.
315       dmsynth: Set loop and sample generators on the fluid_voice.
316       dmime: Force recompute MIDI message reference time.
317       dmband: Skip band / band track chunk on parsing failure.
318       dmime: Skip sequence track chunk on parsing failure.
319       dmime: Skip segment chunk on parsing failure (or success).
320       dmime: Ignore badly formed wave if format and data have been found.
321       dmime: Remove shadowing local hr variable.
322       dmusic: Ignore some known wave chunks.
323       gitlab: Run tests with LP_NUM_THREADS=4 env var.
324       mf/tests: Avoid crashing if MF_BYTESTREAM_EFFECTIVE_URL is missing.
325       dmime: Pass IDirectMusicPerformance8 to segment state functions.
326       dmime: Pass PlaySegmentEx start time as track time offset.
327       dmband: Use time_offset to align track start with music time.
328       dmime: Use time_offset to align track start with music time.
329       dmime: Use an internal performance message for segment end.
330       dmstyle: Rename IDirectMusicStyle8Impl method prefix to style.
331       dmstyle: Get rid of the IDirectMusicStyle8Impl typedef.
332       dmstyle: Rewrite style part list parsing.
333       dmstyle: Rewrite style pref chunk parsing.
334       dmstyle: Rename style_motif to style_pattern.
335       dmstyle: Rewrite style pttn list parsing.
337 Sven Baars (2):
338       wined3d: Don't override the default renderer in wined3d_dll_init().
339       nsiproxy.sys: Return STATUS_SUCCESS from ipv6_forward_enumerate_all() on non-Linux.
341 Yuxuan Shui (1):
342       mfmediaengine: Don't send event notify when engine is shutdown.
344 Zebediah Figura (18):
345       advapi32: GetNamedSecurityInfo() takes a const name argument.
346       advapi32/tests: Use StringFromGUID2().
347       advapi32: Fix rewinding the last path segment in SetSecurityInfo().
348       advapi32/tests: Add more tests for GetSecurityInfo().
349       advapi32: Respect object type in GetSecurityInfo().
350       advapi32: Respect object type in SetSecurityInfo().
351       user32/tests: Add basic tests for GetUserObjectSecurity().
352       advapi32: Implement GetSecurityInfo(SE_WINDOW_OBJECT).
353       wined3d: Rename buffer dirty ranges fields.
354       wined3d: Use wined3d_array_reserve() to pre-allocate the buffer dirty ranges array.
355       wined3d: Do not track dirty ranges for buffers without WINED3D_BUFFER_USE_BO.
356       d3d10core/tests: Avoid POINT sampling exactly halfway between two mip levels.
357       d3d11/tests: Avoid POINT sampling exactly halfway between two mip levels.
358       include: Convert d3d10shader.h to an IDL.
359       include: Convert d3d10effect.h to an IDL.
360       ntdll: Do not reject data directories at the end of a file.
361       ws2_32/tests: Make sure that WSARecv() completes synchronously in test_WSARecv().
362       ws2_32/tests: Wait for AFD_POLL_RESET in test_get_events_reset().