1 The Wine development release 3.0-rc1 is now available.
3 This is the first release candidate for the upcoming Wine 3.0. It
4 marks the beginning of the code freeze period. There have been many
5 last minute changes, so please give this release a good testing to
6 help us make 3.0 as good as possible.
8 What's new in this release (see below for details):
9 - Direct3D 11 enabled by default on AMD and Intel GPUs.
10 - AES encryption support on macOS.
11 - Implementation of the task scheduler.
12 - Registry export support in the reg.exe tool.
13 - Progman DDE support.
14 - OLE data cache improvements.
15 - More event support in MSHTML.
16 - Relay debugging improvements.
19 The source is available from the following locations:
21 https://dl.winehq.org/wine/source/3.0/wine-3.0-rc1.tar.xz
22 http://mirrors.ibiblio.org/wine/source/3.0/wine-3.0-rc1.tar.xz
24 Binary packages for various distributions will be available from:
26 https://www.winehq.org/download
28 You will find documentation on https://www.winehq.org/documentation
30 You can also get the current source directly from the git
31 repository. Check https://www.winehq.org/git for details.
33 Wine is available thanks to the work of many people. See the file
34 AUTHORS in the distribution for the complete list.
36 ----------------------------------------------------------------
38 Bugs fixed in 3.0-rc1 (total 28):
40 30899 SlingPlayer 1.5 UI broken
41 34328 World of Tanks: Purple graphics errors
42 40714 process_attach is executed too early for forwarded exports (Oblivon Script Extender cannot load under wine-staging)
43 40832 MultiSpec 2.8.2016 32-Bit: Installs fine but crashes while opening any images
44 40866 DigitalMicrograph: crashes when a new script is added to the menu
45 40963 Upwards, lonely robot Demo crashes with Too many buffers queued
46 41269 MSI uninstaller does not clean up Registry's UpgradeCode, ProductCode
47 42128 Anime Studio Professional 8 hogs CPU after it's closed.
48 42307 Temple+: needs knownfolder_GetRedirectionCapabilities
49 42961 Multiple apps need D3D11 depth bias support (FFXIV, Unigine: Heaven, The Witcher 3)
50 43000 wine can't be compiled by gcc-2.95.4 (dsound/dsound_convert.c, C99 ~ lrintf)
51 43116 Metal Slug 2 (GOG.com) can't get past the character selection screen (needs native msvcr120.dll)
52 43131 Multiple apps need correct shader translation for discard_z (The Witcher 3, Star Trek Online, .hack//G.U Last Recode)
53 43264 The Witcher 3: Black and red face textures and missing vegetation
54 43406 NieR:Automata - Bloom to bright
55 43902 close() on a closed fd should set errno to EBADF
56 43905 pCon Planner crashes using builtin msvcp: access violation reading location 0x60 at basic_ios_char_widen in module msvcp140.
57 43932 Fallout 4 (Steam): Low detailed LOD exterior Meshes are rendered Inside interior cell (wine missing support for SV_ClipDistanceN)
58 43940 Runtime error: Invalid floating point operation in Dys-Vocal2 installer
59 43956 GDI+ is unable to load some truetype fonts
60 44022 The pixel format was invalid as specified (Minecraft Java, Soldiers of Anarchy)
61 44064 Sims 4: unimplemented function msvcr120.dll._get_purecall_handler
62 44075 Unable to set subsystem version with VC++ 2013 link.exe
63 44084 Simple WPF/.Net app doesn`t start
64 44085 winecfg: Use more secure HTTPS URL in about
65 44088 expected declaration specifiers or ‘...’ before ‘va_list’
66 44091 The Witcher: Enhanced Edition crashes during gameplay
67 44104 Torchlight: rendering issue when GLSL is enabled
69 ----------------------------------------------------------------
74 ntdll: Return correct time zone names for Asia/Tokyo and Asia/Yakutsk.
77 mmsystem.dll16: Pass through MCI_LIST, MCI_SETAUDIO, and MCI_SETVIDEO.
78 wevtapi: Add EvtOpenChannelEnum stub.
79 wevtapi: Add EvtQuery stub.
80 wevtapi: Add EvtOpenSession stub.
81 wevtapi: Add EvtNextChannelPath stub.
82 wevtapi: Add EvtOpenLog stub.
83 include: Add dhtmled.idl and dhtmldid.h.
85 Alexandre Julliard (38):
86 ntdll: Print thread id by default in all traces.
87 libwine: Print thread id by default in all traces.
88 ntdll: Support magic \1 prefix in debug format for relay traces.
89 krnl386: Use the magic format string prefix for relay traces.
90 kernel32: Use the magic format string prefix for relay traces.
91 user32: Use the magic format string prefix for relay traces.
92 ntoskrnl: Use the magic format string prefix for relay traces.
93 winedevice: Use the magic format string prefix for relay traces.
94 user.exe: Don't use the relay channel for normal traces.
95 ntdll: Fix stack alignment in relay calls on ARM.
96 kernel32: Don't return a parent locale for neutral locales in GetLocaleInfoEx.
97 ntdll: Move freeing the thread stack to a common helper.
98 ntdll: Put the initial pthread stack at the end of the Win32 stack.
99 ntdll: Add a platform-specific helper for starting a process.
100 ntdll: Add a platform-specific helper for starting a thread.
101 ntdll: Suspend a thread with its start context explicitly before attaching dlls.
102 ntdll: Don't return from attach_dlls on failure.
103 kernel32/tests: Add a test for the thread initial context.
104 configure: Replace AC_HEADER_MAJOR macro to handle glibc 2.25 sys/types.h breakage.
105 ntdll: Run the entire thread initialization code on the thread stack on i386.
106 ntdll: Run the entire thread initialization code on the thread stack on x86-64.
107 ntdll: Run the entire thread initialization code on the thread stack on remaining platforms.
108 ntdll: Move suspending a thread on startup into attach_dlls().
109 ntdll: Start process execution directly at the kernel32 process entry point.
110 ntdll: Pass the stack pointer to virtual_clear_thread_stack().
111 ntdll: Fix CONTEXT definition for ARM.
112 ntdll: Fix CONTEXT definition for ARM64.
113 server: Add floating point and debug registers to the ARM context.
114 server: Add floating point and debug registers to the ARM64 context.
115 ntdll: Display floating point arguments in relay debugging on i386 and x86-64.
116 winebuild: Add support for -mfloat-abi option.
117 winegcc: Add support for -mfloat-abi option.
118 configure: Add option for overriding the floating point ABI on ARM platforms.
119 include: Don't use floating point for WINAPI functions when building for soft-float on ARM.
120 msvcrt: Disable floating point instructions for the soft-float ARM build.
121 oleaut32: Disable floating point instructions for the soft-float ARM build.
122 oleaut32: Fix ARM floating point register allocations.
123 oleaut32: Fix check for DECIMAL variant in VarNumFromParseNum.
125 Alistair Leslie-Hughes (1):
126 winegstreamer: Remove redundant check.
129 xaudio2: Ignore buffers returned from OpenAL after Stop.
130 ntdll: Report NtReadFileScatter results asynchronously.
131 ntdll: Don't return an error when reading past EOF in NtReadFileScatter.
132 ntdll: Don't require full-page reads in NtReadFileScatter.
135 po: Update Lithuanian translation.
138 wined3d: Remove outdated comment.
139 announce: Move WineHQ URLs to https.
140 readme: Move WineHQ URLs to https.
141 configure: Move WineHQ URLs to https.
142 loader: Move WineHQ URLs to https.
143 server: Move WineHQ URLs to https.
144 widl: Move WineHQ URLs to https.
145 winegcc: Move WineHQ URLs to https.
146 wrc: Move WineHQ URLs to https.
147 winemaker: Move WineHQ URLs to https.
148 wmc: Move WineHQ URLs to https.
149 winebuild: Move WineHQ URLs to https.
150 winedump: Move WineHQ URLs to https.
151 c2man.pl: Move WineHQ URLs to https.
152 msiexec: Move WineHQ URLs to https.
153 notepad: Move WineHQ URLs to https.
154 regedit: Move WineHQ URLs to https.
155 winemine: Move WineHQ URLs to https.
156 winepath: Move WineHQ URLs to https.
157 wineconsole: Move WineHQ URLs to https.
158 regsvr32: Move WineHQ URLs to https.
159 wineboot: Move WineHQ URLs to https.
160 winecfg: Move WineHQ URLs to https.
161 winefile: Move WineHQ URLs to https.
162 winedbg: Move WineHQ URLs to https.
163 iexplore: Move WineHQ URLs to https.
164 appwiz.cpl: Move WineHQ URLs to https.
165 maintainers: Move WineHQ URLs to https.
166 loader/wine.pl.UTF-8.man.in: Move WineHQ URL to https.
169 wininet: Use case-insensitive comparison for server name.
172 ucrtbase/tests: Properly use quotes.
173 gdi32: In AddFaceToList allow fonts with long names and add tests.
174 gdiplus: In GdipPrivateAddMemoryFont allow loading fonts with long names.
175 msvcrt: Don't crash if _vsnwprintf gets NULL as format string and add test.
176 wined3d: Unbind currently bound FBOs before dispatching compute shaders.
179 advapi32: Include <stdarg.h> since winbase.h expects va_list.
182 taskschd: Return success from a couple of stubs.
183 taskschd: Implement ITaskSettings_put_RestartInterval.
184 taskschd: Implement ITaskSettings_put_RestartCount.
185 taskschd: Implement ITaskSettings_put_MultipleInstances.
186 taskschd: Implement ITaskSettings_put_StopIfGoingOnBatteries.
187 taskschd: Use heap_strdupW to allocate the interval in TaskSettings_put_RestartInterval.
188 taskschd: Implement ITaskSettings_put_DisallowStartIfOnBatteries.
189 taskschd: Implement ITaskSettings_put_AllowHardTerminate.
190 taskschd: Implement ITaskSettings_put_StartWhenAvailable.
191 taskschd: Implement ITaskSettings_put_RunOnlyIfNetworkAvailable.
192 taskschd: Implement ITaskSettings_put_ExecutionTimeLimit.
193 taskschd: Implement ITaskSettings_put_Enabled.
194 taskschd: Implement ITaskSettings_put_DeleteExpiredTaskAfter.
195 taskschd: Implement ITaskSettings_put_Priority.
196 taskschd: Implement ITaskSettings_put_Compatibility.
197 taskschd: Implement ITaskSettings_put_Hidden.
198 taskschd: Implement ITaskSettings_put_RunOnlyIfIdle.
199 taskschd: Implement ITaskSettings_put_WakeToRun.
200 taskschd: Implement ITaskSettings_put_AllowDemandStart.
201 taskschd: Implement ITaskDefinition_put_Triggers.
202 taskschd: Implement ITaskDefinition_get_Principal.
203 taskschd: Implement ITaskDefinition_put_Principal.
204 taskschd: Implement ITaskDefinition_get_Actions.
205 taskschd: Implement ITaskDefinition_put_Actions.
206 taskschd: Implement IActionCollection_Create.
207 taskschd: Implement IExecAction_put_Path.
208 taskschd: Implement IExecAction_get_Path.
209 taskschd: Consistently check for allocation failure.
210 taskschd: Implement IDailyTrigger_put_StartBoundary.
211 taskschd: Implement IDailyTrigger_get_StartBoundary.
212 taskschd: Implement IDailyTrigger_put_Enabled.
213 taskschd: Implement IDailyTrigger_get_Enabled.
214 bcrypt: Add support for AES encryption on macOS.
215 webservices: Store the async context directly in struct receive_message.
216 webservices: Don't require specific writer state for element mappings in WsWriteType.
217 webservices: Implement WS_REPEATING_ELEMENT_CHOICE_FIELD_MAPPING in the writer.
218 webservices: Enable dictionary lookup after setting the output buffer.
219 webservices: Don't use the dictionary for UTF-16 text.
222 wined3d: Really remove an outdated comment.
223 d3d10core/tests: Introduce a format compatibility test.
224 ddraw/tests: Redundant mode sets are broken on Windows 10.
225 wined3d: Raise the default max_gl_version for specific cases.
228 reg: Add initial support for the export operation.
229 reg: Add basic syntax checks for the export operation.
230 reg: Validate the system key before commencing the export operation.
231 reg: Print a more informative error message if the system key is invalid.
232 reg: Validate the registry key before commencing the export operation.
233 reg: Prompt the user to overwrite the export file if it already exists.
234 reg: Export the registry file header.
235 reg: Export the name of the specified registry key.
236 reg: Export registry value names.
237 reg: Export REG_SZ data.
238 reg: Export hex data types.
239 reg: Export REG_DWORD values.
240 reg: Recursively export all subkeys and data.
241 reg: Make the newline string a static global.
242 reg: Define MAX_SUBKEY_LEN in reg.h.
243 reg/tests: Test capitalisation of switches.
244 reg: Allow switches to be uppercase or lowercase.
246 Huw D. M. Davies (8):
247 ole32: Make the synthesize helpers return a STGMEDIUM.
248 ole32/tests: Show that the storage's CLSID is not modified when saving.
249 ole32: Properly align CLIPFORMAT marshal data.
250 ole32: Properly align HANDLE marshal data.
251 ole32: Properly align HENHMETAFILE marshal data.
252 ole32: Properly align HMETAFILEPICT marshal data.
253 ole32: Remove unused variable.
254 ole32: Don't clear the dirty flag when saving to another storage.
257 mshtml: Added support for default removeEventListener capture argument.
258 mshtml: Return S_OK in IHTMLStyle2::put_behavior.
259 server: Use default_fd_signaled for named pipe client.
260 kernel32/tests: Silence noisy debug traces.
261 mshtml: Removed unused impl_from_DispatchEx.
262 mshtml: Store listener container type as a string.
263 mshtml: Pass listener type as a string to get_listener_container.
264 mshtml: Pass listener type as a string to remove_event_listener.
265 mshtml: Silence some noisy FIXMEs.
266 mshtml: Store event type string in DOMEvent object.
267 mshtml: Added IDOMEvent::get_type implementation.
268 mshtml: Use IDOMEvent for IHTMLEventObj::get_type implementation.
269 mshtml: Added IDOMEvent::get_bubbles implementation.
270 mshtml: Added IDOMEvent::get_cancelable implementation.
271 mshtml: Ignore preventDefault calls for non-cancelable events.
272 mshtml: Fixed event target leak in dispatch_event.
273 mshtml: Added IDOMEvent::get_currentTarget implementation.
274 mshtml: Added IDOMEvent::get_target implementation.
275 mshtml: Added IDOMEvent::initEvent implementation.
276 mshtml: Don't call preventDefault in stopPropagation.
277 mshtml: Don't store dispatch mode in DOMEvent object.
278 mshtml: Added IDOMEvent::dispatchEvent implementation.
279 mshtml: Expose IDocumentEvent to scripts.
280 mshtml/tests: Added more event object tests.
281 jscript: Support VT_UI8 in variant_to_jsval.
282 mshtml: Added IDOMEvent::get_timeStamp implementation.
283 mshtml.idl: Added IDOMKeyboardEvent declaration.
284 bcrypt/tests: Use common helper for testing different hash types.
285 bcrypt: Added MD2 hash support.
286 rsaenh: Use bcrypt for MD2 hashes.
287 rsaenh: Use bcrypt for SHA1 hashes.
288 bcrypt: Added support for MD4 hashes.
289 rsaenh: Use bcrypt for MD4 hashes.
290 rsaenh: Use bcrypt for MD5 hashes.
291 rsaenh: Removed no longer needed ALG_ID argument from helper functions.
294 wined3d: Fix SM4 discard_z instruction.
295 wined3d: Introduce helper function to generate conditional instructions.
296 d3d11/tests: Add test for SM4 discard instruction.
297 d3d10core/tests: Add test for SM4 discard instruction.
298 ddraw: Cleanup ddraw_get_d3dcaps().
299 d3d9/tests: Add test for clip planes limits.
300 d3d8/tests: Add test for clip planes limits.
301 ddraw/tests: Add test for clip planes limits.
302 d3d9: Clamp clip plane index to valid range.
303 wined3d: Allow setting all 32 user clip planes.
304 wined3d: Limit number of supported user clip planes to 8.
305 wined3d: Disable all clip distances for blits.
306 wined3d: Pack wined3d_context better.
307 wined3d: Keep track of enabled clip distances.
308 d3dx9: Avoid passing FALSE as D3DRS_CLIPPLANEENABLE bitmask.
309 wined3d: Implement SV_ClipDistance.
310 d3d11/tests: Add test for SV_ClipDistance.
311 wined3d: Implement SV_CullDistance.
312 d3d11/tests: Add test for combined clip and cull distances.
313 wined3d: Correctly transform FFP clip planes.
314 ddraw: Store all 32 user clip planes.
315 wined3d: Store only supported user clip planes.
316 wined3d: Add support for WINED3DFMT_BC4_SNORM format.
317 wined3d: Add support for D3D10+ depth bias.
318 d3d11: Implement depth bias.
319 d3d8: Toggle depth test state based on auto depth stencil.
320 d3d9: Toggle depth test state based on auto depth stencil.
321 wined3d: Do not modify depth test state in wined3d_device_init_3d().
322 d3d11: Fix initial depth stencil state.
323 d3d11/tests: Add test for initial depth stencil state.
324 ddraw: Also store supported user clip planes.
325 d3d11/tests: Add test for relative addressing of vertex shader inputs.
326 wined3d: Fix relative addressing for SM4+ vertex shader inputs.
327 d3d8: Set depth test state while resetting device.
328 d3d9: Set depth test state while resetting device.
329 ddraw: Set depth test state while resetting device.
330 wined3d: Do not modify depth test state in wined3d_device_reset().
331 wined3d: Do not call wined3d_from_cs() in shader_resource_view_generate_mipmaps().
332 wined3d: Avoid calling removed/deprecated GL functions in SetupForBlit().
333 d3d11/tests: Add test for depth bias.
334 d3d11/tests: Run depth bias test on smaller render targets.
337 winemac: Fix test for simple non-restrictive window region optimization.
338 winemac: Check the display link running state as well as the window count to decide whether to start/stop it.
339 winemac: Leave a window in auto-display mode when it doesn't yet have a display link.
340 winemac: Stop the display link after 2 seconds of idleness, not the first time it's idle.
343 readme: Update Swedish translation.
344 readme: Use UTF-8 consistently in all translations.
345 po: Update Finnish translation.
346 readme: Move WineHQ URLs to https in translations.
349 wined3d: Add Intel HD Graphics 5000 to the GPU list.
352 shell32: Add stub for Shell_NotifyIconGetRect.
355 dwrite: Stub SetIncrementalTabStop with S_OK.
358 wined3d: Refuse to create texture views changing format from non-typeless.
359 d3d11: Disallow 0-sized buffer shader resource views.
360 d3d11/tests: Add a couple of testcases for UINT format SRVs.
361 wined3d: Add texture flag for mipmap generation.
362 d3d11: Validate D3D11_RESOURCE_MISC_GENERATE_MIPS flag for 2D textures.
363 d3d11: Validate MiscFlags for 3D textures.
364 d3d11: Validate buffer MiscFlags.
365 d3d11: Pass the WINED3D_TEXTURE_CREATE_GENERATE_MIPMAPS flag to wined3d.
366 d3d9: Stop calling wined3d_texture_generate_mipmaps().
367 wined3d: Implement manual mipmap generation.
368 d3d11: Implement GenerateMips().
369 wined3d: Detect depth bias scale value per format.
370 wined3d: Use GL_DEPTH_COMPONENT16 for 16 bit depth texture formats.
371 d3dx9: Merge "main" source files.
372 d3dx9: Use the D3DCOMPILE_ENABLE_BACKWARDS_COMPATIBILITY flag when compiling ASCII effects.
373 d3dx9: Implement D3DXGetShader{Input|Output}Semantics().
374 d3dx9/tests: Add a test for D3DXGetShader{Input|Output}Semantics().
375 wined3d: Fix shader_resource_view_generate_mipmaps() with texture views.
376 wined3d: Only allow swapchain textures to have mismatched sRGB setting in resource views.
377 d3d11/tests: Add some tests for invalid RTVs.
380 mshtml/tests: Test return values in more places (Coverity).
381 gdiplus/tests: Check more return values (Coverity).
382 comctl32/tests: Some cleanup for SysLink tests.
383 comctl32/syslink: Fix return value for LM_GETIDEALSIZE.
384 d2d1: Respond to ID2D1Image query.
385 comctl32/tests: Some tests for focus handling in owner-data listviews.
386 wininet/tests: Fix some leaks (Coverity).
387 user32/tests: Added some tests for WM_GETTEXTLENGTH/WM_GETTEXT after EM_GETHANDLE was used.
388 mshtml: Avoid potential moniker instance leak.
389 user32/edit: Allow buffer access after EM_GETHANDLE.
390 po: Update Russian translation.
391 httpapi/tests: Added some basic tests for session and group creation.
392 user32/tests: Remove runtime check for EndMenu().
395 msvcrt: Call cdecl functions with empty FPU stack in _CI* functions.
396 msvcp90: Use correct locale in basic_ios::narrow and basic_ios::widen.
397 msvcrt: Set errno when close() is called on already closed fd.
398 msvcrt: Change how fread splits reading into chunks.
399 msvcrt: Don't report error in fclose on already closed stream.
400 msvcrt: Fix buffer size checks in swscanf_s.
401 msvcp: Fix failure class layout and exception information data.
402 msvcp: Disable relay for _Thrd_current function.
404 Sergio Gómez Del Real (7):
405 ole32/tests: Add some tests for testing metafiles.
406 ole32: Add DIB saving in data cache, and relevant tests.
407 ole32: Refactor OLE's data cache Save implementation.
408 ole32: Add support for saving DIBs to CONTENTS streams.
409 ole32: Add support for saving metafiles to CONTENTS streams.
410 ole32: Add support for saving enhmetafiles to CONTENTS and Presentation streams.
411 ole32/tests: Add tests for enhmetafile and CONTENTS stream saving.
414 wined3d: Show the device window when changing fullscreen resolutions.
415 d3d8/tests: Test mode change messages.
416 msvcp: Use int64 for byval _Thrd_t parameters.
417 msvcp: Cast the wait time in _Cnd_timedwait to ULONG.
420 wdscore: Add stub DLL.
422 Zebediah Figura (21):
423 shell32/tests: Simplify and standardize test structure for progman_dde.
424 explorer: Use the class name ExplorerWClass for the explorer browser.
425 explorer: Set the window title to the current directory.
426 shell32: Add a parser for DDE commands.
427 shell32: Implement the CreateGroup() command for Progman DDE.
428 shell32: Implement the DeleteGroup() command for Progman DDE.
429 shell32: Implement the ShowGroup() command for Progman DDE.
430 hlink/tests: Add tests for navigating from a string reference.
431 hlink: Better handle the IBrowseContext parameter in IHlink::Navigate().
432 configure: Remove l_intl.nls before removing created directories.
433 shell32: Implement the AddItem() command for Progman DDE.
434 shell32: Implement the DeleteItem() command for Progman DDE.
435 shell32/tests: Simplify existing tests and add more tests for Progman DDE.
436 kernel32: Fix a couple internal uses of ANSI functions.
437 shell32: Implement the ReplaceItem() command for Progman DDE.
438 shell32: Implement the ExitProgman() command for Progman DDE.
439 shell32: Implement the Groups request for Progman DDE.
440 msi: Complain louder if we can't find a custom action DLL or EXE.
441 ole32: Add in-process user marshalling for bitmaps.
442 ole32: Add local user marshalling for bitmaps.
443 ole32: Add user marshalling for TYMED_GDI.
446 mlang: Implement IMLangFontLink2_MapFont, IMLangFontLink2_ReleaseFont and IMLangFontLink2_ResetFont.
447 mlang: Implement IMLangFontLink_MapFont, IMLangFontLink_ReleaseFont and IMLangFontLink_ResetFont.
448 mlang/tests: Add MapFont tests.
449 mlang/tests: Add a test code page for each code page family.
450 mlang: Fix font name of code page families.