1 The Wine development release 3.10 is now available.
3 What's new in this release (see below for details):
4 - Swapchain support in Direct 3D 12.
5 - Vulkan support updated to the latest spec.
6 - Debugger support for Wow64 processes.
7 - Still more support for the Task Scheduler.
10 The source is available from the following locations:
12 https://dl.winehq.org/wine/source/3.x/wine-3.10.tar.xz
13 http://mirrors.ibiblio.org/wine/source/3.x/wine-3.10.tar.xz
15 Binary packages for various distributions will be available from:
17 https://www.winehq.org/download
19 You will find documentation on https://www.winehq.org/documentation
21 You can also get the current source directly from the git
22 repository. Check https://www.winehq.org/git for details.
24 Wine is available thanks to the work of many people. See the file
25 AUTHORS in the distribution for the complete list.
27 ----------------------------------------------------------------
29 Bugs fixed in 3.10 (total 17):
31 29586 Tumblebugs 2 demo: insects render black
32 31403 bad exe format for mingw binary that works fine on windows.
33 31533 Copy from Onenote 2010 to linux native or even wine apps fails
34 33364 AMD HD 6650M is recognized as HD 2900XT1
35 34686 Neverwinter Nights 2 (GOG.com) fails on startup, claiming: "Unable to detect a video card with hardware 3D acceleration."
36 35898 64-bit PDF-XChange Viewer 2.5.x crashes when searching in a PDF document
37 36789 Multiple .NET XNA games fail to start, complaining with "Could not find a Direct3D device that supports the XNA Framework HiDef profile" (One Finger Death Punch, Party Of Sin DEMO, Stardew Valley)
38 37275 Chess Position Trainer 5 (.NET 4.0 app) wants gdiplus.GdipCreateAdjustableArrowCap implementation
39 38816 Multiple games require XInput gamepad support (Brothers: A Tale of Two Sons, Broforce, Dead Space, Lego Star Wars Complete Saga)
40 42599 Max Payne 3 (Steam) crashes in DX9 mode
41 43300 wchar.h missing wmemchr, wmemcmp, wmemcpy, wmemmove, and wmemset
42 43509 Internet Explorer 11 installer fails, needs stub 'dism.exe'
43 43606 World of Tanks no longer starts (after launcher) since 2.15
44 44880 64-bit Mod Organizer 2.1.2 dev6-Silarn-prerelease fails to load 'usvfs_x64.dll', needs 'ntdll.RtlDosPathNameToRelativeNtPathName_U_WithStatus'
45 45127 Tomb Raider 2013: mismatched shader interface blocks cause broken rendering
46 45243 Wrong cast in some HANDLE_MSG_WM_* macros produces errors when compiling with wineg++
47 45248 CPU-Z 1.8x kernel driver crashes on unimplemented function ntoskrnl.exe.SeSinglePrivilegeCheck
49 ----------------------------------------------------------------
54 winmm: Synchronize player status and API calls.
55 winmm: Return a continuous stream position in MIDI stream.
56 winmm: Reset the tick counter after handling messages.
59 include: Add wmemchr to wchar.h.
60 include: Add wmemcmp to wchar.h.
61 include: Add wmemcpy to wchar.h.
62 include: Add wmemmove to wchar.h.
63 include: Add wmemset to wchar.h.
64 gdi32: Avoid awkward cast in GetGlyphOutlineA (Coverity).
65 gdi32: Fix memory leak on error in PATH_WidenPath (Coverity).
67 Alexandre Julliard (6):
68 msvcrtd: Fix _CrtDbgReport calling convention.
69 makefiles: Don't run tests for disabled dlls.
70 user32: Rename rectClient to client_rect for consistency.
71 user32: Rename rectWindow to window_rect for consistency.
72 user32: Only pass the new valid rectangle to the server.
73 server: Don't convert the surface region to screen coordinates.
75 Alistair Leslie-Hughes (3):
76 include: Add more definitions to wdm.h.
77 wbemdisp/tests: Add ISWbemSecurity tests.
78 include: Updated enum AutomationIdentifierType values.
81 po: Update Lithuanian translation.
84 dism: Add stub program.
87 ntoskrnl: Have MmIsAddressValid use IsBadReadPtr.
89 Dmitry Timoshkov (14):
90 mstask: Implement ITask::GetMostRecentRunTime().
91 schedsvc: Read parameters and current directory from the job file.
92 mstask: Retry with a timeout if opening a job file has failed.
93 schedsvc: Add support for executing tasks.
94 schedsvc: Read triggers when loading a job file.
95 schedsvc: Add support for running tasks at specified time.
96 schedsvc: Add a sanity check when loading a .job file.
97 schedsvc: Load job files at the service start up.
98 schedsvc: Add support for running missed tasks at the service start.
99 mstask: Implement ITask::GetExitCode().
100 mstask: Implement IEnumWorkItems::Next().
101 mstask: Implement IEnumWorkItems::Reset().
102 mstask: Implement IEnumWorkItems::Skip().
103 mstask/tests: Add more tests for IEnumWorkItems interface.
106 fc: Add stub program.
107 find: Add stub program.
108 user32: Make RegisterPointerDeviceNotifications return TRUE to fake success.
109 user32: Add stub for GetPointerDevices.
110 user32: Add RegisterTouchHitTestingWindow stub.
113 wscript/tests: Fix a typo in the WScript.BuildVersion check.
114 dwrite: Fix typos in a couple of idl parameter names.
115 schedsvc: Add a trailing '\n' to some ERR() messages.
116 shell32: Fix a typo in a comment.
117 wsdapi/tests: Add a trailing '\n' to an ok() call.
118 dxgi: Fix a trailing '\n' in a FIXME() trace.
121 msi/tests: Remove duplicate service tests.
122 webservices: Call WSACleanup when the dll is unloaded.
123 webservices/tests: Make test data local if it's only used in one place.
124 webservices: Handle WS_XML_TEXT_TYPE_INT64 in text_to_uint64.
125 webservices: Fix handling of empty text field mappings.
126 winhttp: Store the server certificate context in the request.
129 msvcp120: Add tests for concurrent_vector_Internal_push_back and capacity.
132 regedit: Confirm whether to delete a registry value from framewnd.c.
133 regedit: Pass NULL instead of the address of an empty WCHAR.
135 Huw D. M. Davies (2):
136 dplayx: Prevent out-of-bounds access to lpMemArea.
137 dbghelp: Add a missing include to fix the build.
140 ole32/tests: Fixed tests on win64.
141 mshtml: Use case insensitive comparition in parse_ua_compatible.
142 mshtml: Use proper document mode for document fragment objects.
143 ole32: Don't try to unregister window class if it was never registered.
144 jscript: Use jsdisp_define_data_property in Object.getOwnPropertyDescriptor.
145 wininet: Simplify header string handling in HTTP_HttpSendRequestW.
146 mshtml/tests: Silence noisy traces.
149 winex11: Introduce GAMMA_RAMP_SIZE.
150 winex11: Interpolate gamma ramp when gamma ramp size is greater than 256.
151 d3d10core/tests: Add test for clearing 1D render target views.
152 wined3d: Fix condition for FIXME() about unsupported depth slices.
153 wined3d: Implement clears for 3D render target views.
154 d3d11/tests: Add test for clearing 3D render target views.
155 d3d11/tests: Check return value of CheckMultisampleQualityLevels() (Coverity).
156 d3d10core/tests: Check return value of CheckMultisampleQualityLevels() (Coverity).
157 dxgi: Rename dxgi_swapchain to d3d11_swapchain.
158 dxgi: Factor out d3d11_swapchain_create() function.
159 dxgi: Add IDXGISwapChain3 interface stub for D3D12.
160 odbccp32: Fix memory leak in SQLGetInstalledDrivers() (Coverity).
161 wined3d: Sort WINED3DSIH enum values.
162 winex11: Get rid of unnecessary assignments.
163 dxgi: Add FIXME() for ignored output parameter in dxgi_factory_CreateSwapChainForHwnd().
164 dxgi: Use DXGI_MAX_SWAP_CHAIN_BUFFERS.
165 dxgi: Forbid multisampling with flip swap effects.
166 dxgi: Introduce ARRAY_SIZE() macro.
167 dxgi/tests: Release IDXGIFactory in test_swapchain_present().
168 dxgi: Create Vulkan swapchains for D3D12.
169 dxgi: Implement d3d12_swapchain_GetBuffer().
170 dxgi: Implement d3d12_swapchain_GetCurrentBackBufferIndex().
171 dxgi: Implement d3d12_swapchain_Present1().
172 dxgi/tests: Handle DXGI_ERROR_NOT_CURRENTLY_AVAILABLE in test_fullscreen_resize_target().
173 dxgi/tests: Use global memory allocation helpers.
174 dxgi/tests: Add test for creating swapchains with multisampling.
175 dxgi/tests: Add option to use selected adapter.
176 winex11: Make get_vulkan_driver() thread-safe.
177 dxgi: Translate VkResults to HRESULTs.
178 dxgi/tests: Add test for IDXGISwapChain3::GetCurrentBackBufferIndex().
179 include/d3d12: Add PFN_D3D12_CREATE_DEVICE.
180 dxgi/tests: Run test_swapchain_backbuffer_index() also on D3D12.
181 d3d12/tests: Add visual test for rendering to swapchain.
182 winevulkan: Introduce WINE_VK_HOST to explicitly request 'host' Vulkan headers.
183 winevulkan: Remove vk.xml from repository.
184 winevulkan: Add copyright headers to files generated from vk.xml.
185 d3d11/tests: Add test for negative viewport coordinates.
186 winevulkan: Correctly recognize commands belonging to multiple extensions.
187 winevulkan: Remove unused variable from make_vulkan script.
188 wined3d: Execute all CS commands before changing swapchain window.
189 wined3d: Remove hardware level detection hacks.
190 d3d12/tests: Add option to use selected adapter.
191 d3d12/tests: Print adapter info.
192 d3d12/tests: Add option to run tests with validation layers.
193 d3d12/tests: Fix resource state transitions in test_swapchain_draw().
194 wined3d: Disallow disabling GLSL on core profile contexts.
196 Kim Geonwoo (김건우) (1):
197 po: Update Korean translation.
200 po: Update Norwegian translation.
203 po: Update Finnish translation.
206 user32: Add stub for RegisterPointerDeviceNotifications.
209 include: Add ID2D1DeviceContext definition.
212 wined3d: Slightly improve formatting of generated GLSL shader interfaces.
213 dxgi: Get rid of DXGI_FRAME_LATENCY_DEFAULT.
214 wined3d: Initialize glMinSampleShading() function pointer.
215 wined3d: Compare interpolation mode VS compilation arguments.
216 d3d9/tests: Test how state is reset after DrawPrimitive[Indexed]UP().
217 d3d9: Get rid of an unnecessary wined3d_device_set_base_vertex_index() call.
220 wbemdisp: Add ISWbemSecurity stub interface.
222 Michael Stefaniuc (91):
223 advapi32/tests: Use the available ARRAY_SIZE() macro.
224 crypt32/tests: Use the available ARRAY_SIZE() macro.
225 bcrypt/tests: Use the available ARRAY_SIZE() macro.
226 dnsapi/tests: Use the available ARRAY_SIZE() macro.
227 dpvoice/tests: Use the available ARRAY_SIZE() macro.
228 wmp/tests: Use the available ARRAY_SIZE() macro.
229 cmd/tests: Use the available ARRAY_SIZE() macro.
230 wscript/tests: Use the available ARRAY_SIZE() macro.
231 dplayx/tests: Use the available ARRAY_SIZE() macro.
232 winspool.drv/tests: Use the available ARRAY_SIZE() macro.
233 wmiutils/tests: Use the available ARRAY_SIZE() macro.
234 d3d10/tests: Use the available ARRAY_SIZE() macro.
235 d3drm/tests: Use the available ARRAY_SIZE() macro.
236 dxdiagn/tests: Use the available ARRAY_SIZE() macro.
237 evr/tests: Use the available ARRAY_SIZE() macro.
238 gameux/tests: Use the available ARRAY_SIZE() macro.
239 mlang/tests: Use the available ARRAY_SIZE() macro.
240 wintrust/tests: Use the available ARRAY_SIZE() macro.
241 xinput/tests: Use the available ARRAY_SIZE() macro.
242 wer/tests: Use the available ARRAY_SIZE() macro.
243 d3d10_1/tests: Use the available ARRAY_SIZE() macro.
244 version/tests: Use the available ARRAY_SIZE() macro.
245 uxtheme/tests: Use the available ARRAY_SIZE() macro.
246 userenv/tests: Use the available ARRAY_SIZE() macro.
247 ucrtbase/tests: Use the available ARRAY_SIZE() macro.
248 twain_32/tests: Use the available ARRAY_SIZE() macro.
249 taskschd/tests: Use the available ARRAY_SIZE() macro.
250 sxs/tests: Use the available ARRAY_SIZE() macro.
251 snmpapi/tests: Use the available ARRAY_SIZE() macro.
252 serialui/tests: Use the available ARRAY_SIZE() macro.
253 secure32/tests: Use the available ARRAY_SIZE() macro.
254 scrrun/tests: Use the available ARRAY_SIZE() macro.
255 schedsvc/tests: Use the available ARRAY_SIZE() macro.
256 rsaenh/tests: Use the available ARRAY_SIZE() macro.
257 d3dx10/tests: Use the available ARRAY_SIZE() macro.
258 xaudio2/tests: Use the available ARRAY_SIZE() macro.
259 wbemprox/tests: Use the available ARRAY_SIZE() macro.
260 wbemdisp/tests: Use the available ARRAY_SIZE() macro.
261 hlink/tests: Use the available ARRAY_SIZE() macro.
262 oledb32/tests: Use the available ARRAY_SIZE() macro.
263 oledlg/tests: Use the available ARRAY_SIZE() macro.
264 opengl32/tests: Use the available ARRAY_SIZE() macro.
265 packager/tests: Use the available ARRAY_SIZE() macro.
266 pdh/tests: Use the available ARRAY_SIZE() macro.
267 propsys/tests: Use the available ARRAY_SIZE() macro.
268 localui/tests: Use the available ARRAY_SIZE() macro.
269 mapi32/tests: Use the available ARRAY_SIZE() macro.
270 mmdevapi/tests: Remove an ARRAY_SIZE()-like macro.
271 mpr/tests: Use the available ARRAY_SIZE() macro.
272 msctf/tests: Use the available ARRAY_SIZE() macro.
273 shdocvw/tests: Use the available ARRAY_SIZE() macro.
274 d3dx9/tests: Use the available ARRAY_SIZE() macro.
275 d3dx9/tests: Use ARRAY_SIZE() in the initialization of registerset_data[].
276 inetcomm/tests: Use the available ARRAY_SIZE() macro.
277 inetmib1/tests: Use the available ARRAY_SIZE() macro.
278 imagehlp/tests: Use the available ARRAY_SIZE() macro.
279 iphlpapi/tests: Use the available ARRAY_SIZE() macro.
280 itss/tests: Use the available ARRAY_SIZE() macro.
281 kernelbase/tests: Use the available ARRAY_SIZE() macro.
282 msrle32/tests: Use the available ARRAY_SIZE() macro.
283 ntdsapi/tests: Use the available ARRAY_SIZE() macro.
284 credui/tests: Use the available ARRAY_SIZE() macro.
285 msvfw32/tests: Use the available ARRAY_SIZE() macro.
286 netapi32/tests: Use the available ARRAY_SIZE() macro.
287 jscript/tests: Use the available ARRAY_SIZE() macro.
288 imm32/tests: Use the available ARRAY_SIZE() macro.
289 d3d8/tests: Use the available ARRAY_SIZE() macro.
290 comctl32/tests: Use the available ARRAY_SIZE() macro.
291 kernel32/tests: Correct the buffer size passed to FormatMessageW().
292 kernel32/tests: Use the available ARRAY_SIZE() macro.
293 advpack/tests: Use the available ARRAY_SIZE() macro.
294 d3dcompiler/tests: Use the available ARRAY_SIZE() macro.
295 gdiplus/tests: Use the available ARRAY_SIZE() macro.
296 dinput8/tests: Use the available ARRAY_SIZE() macro.
297 dinput/tests: Use the available ARRAY_SIZE() macro.
298 webservices/tests: Use the available ARRAY_SIZE() macro.
299 rpcrt4/tests: Use the available ARRAY_SIZE() macro.
300 quartz/tests: Use the available ARRAY_SIZE() macro.
301 psapi/tests: Use the available ARRAY_SIZE() macro.
302 oleacc/tests: Use the available ARRAY_SIZE() macro.
303 ntprint/tests: Use the available ARRAY_SIZE() macro.
304 msvcirt/tests: Use the available ARRAY_SIZE() macro.
305 msvcp60/tests: Use the available ARRAY_SIZE() macro.
306 msvcp90/tests: Use the available ARRAY_SIZE() macro.
307 msvcp120/tests: Use the available ARRAY_SIZE() macro.
308 msvcp140/tests: Use the available ARRAY_SIZE() macro.
309 msvcr90/tests: Use the available ARRAY_SIZE() macro.
310 msvcr110/tests: Use the available ARRAY_SIZE() macro.
311 msvcr120/tests: Use the available ARRAY_SIZE() macro.
312 ieframe/tests: Use the available ARRAY_SIZE() macro.
313 mshtml/tests: Use the available ARRAY_SIZE() macro.
316 server: Use additional atom to keep base class name.
319 wsdapi/tests: Ensure probe message is given unique GUID.
320 wsdapi/tests: Expand ProbeHandler tests.
323 wined3d: Expose wined3d_shader_type enum and wined3d_device_*_constant_buffer methods.
324 d3d11: Make d3d11 *SetConstantBuffers use a helper method.
325 d3d11: Make d3d11 *GetConstantBuffers use a helper method.
326 d3d11: Make d3d10 *SetConstantBuffers use a helper method.
327 d3d11: Make d3d10 *GetConstantBuffers use a helper method.
328 wined3d: Delete the wined3d_device_get_*_cb and wined3d_device_set_*_cb methods.
331 msvcp120: Fix _Getcvt tests when zh_CN system locale is used.
333 Roderick Colenbrander (4):
334 winevulkan: Fix parsing of const function pointer members.
335 winevulkan: Parse forward declared struct members.
336 winevulkan: Parse extension require sections one by one.
337 winevulkan: Update vk.xml to 1.1.76.
340 ntdll: Partly implement RtlDosPathNameToRelativeNtPathName_U_WithStatus.
341 ntdll: Implement RtlReleaseRelativeName.
344 jscript: Fix MSVC build.
345 ole32/tests: Store GUIDs by reference.
347 Zebediah Figura (50):
348 msi/tests: Test deferral of RegisterClassInfo and UnregisterClassInfo.
349 msi/tests: Test deferral of RegisterExtensionInfo and UnregisterExtensionInfo.
350 msi/tests: Test deferral of RegisterFonts and UnregisterFonts.
351 msi/tests: Test deferral of RegisterMimeInfo and UnregisterMimeInfo.
352 msi/tests: Simplify key access flags in test_register_product().
353 msi/tests: Test deferral of RegisterProduct.
354 msi/tests: Test deferral of RegisterProgIdInfo and UnregisterProgIdInfo.
355 msi/tests: Test deferral of RegisterUser.
356 widl: Try to import typedefs instead of redefining them.
357 widl: Properly implement syntax 2 dispinterfaces.
358 widl: Don't remove the FDUAL flag from non-dispatchable interfaces.
359 widl: Prefer types defined in the same typelib to imported types.
360 msi/tests: Test registration of a valid typelib.
361 msi/tests: Test deferral of RegisterTypeLibraries and UnregisterTypeLibraries.
362 msi/tests: Test self-registration of a valid DLL.
363 msi/tests: Test deferral of SelfRegModules and SelfUnregModules.
364 kernel32: Allow EnumProcessModules() to succeed on a WoW64 process.
365 kernel32: Allow GetModuleBaseName() to succeed on a WoW64 process.
366 kernel32: Allow GetModuleFileNameEx() to succeed on a WoW64 process.
367 kernel32: Allow GetModuleInformation() to succeed on a WoW64 process.
368 msi/tests: Simplify and combine environment variable tests.
369 msi/tests: Test deferral of WriteEnvironmentStrings and RemoveEnvironmentStrings.
370 msi/tests: Add a simple test for WriteIniValues.
371 msi/tests: Test deferral of WriteIniValues and RemoveIniValues.
372 dbghelp: Add a helper to check if a given module is the Wine loader.
373 dbghelp: Determine the wine loader name from the target process's architecture.
374 dbghelp: Correctly determine the wine loader base address.
375 dbghelp: Don't enforce child architecture in elf_map_file().
376 dbghelp: Detect ELF architecture before reading the whole header.
377 dbghelp: Translate the 32-bit ELF header to the 64-bit one.
378 dbghelp: Translate the 32-bit ELF section header to the 64-bit one.
379 msvcrt: Avoid using inline assembly in __ExceptionPtrDestroy().
380 msvcrt: Avoid using inline assembly in __ExceptionPtrCopyException() and copy_exception().
381 dbghelp: Read the ELF program header corresponding to the target's architecture.
382 dbghelp: Read the Elf_Dyn struct corresponding to the target's architecture.
383 dbghelp: Read the Elf_auxv_t struct corresponding to the target's architecture.
384 dbghelp: Translate the 32-bit ELF symbol struct to the 64-bit one.
385 dbghelp: Read the r_debug and link_map structs corresponding to the target's architecture.
386 stdole2.idl: Use more accurate sizes for Automation types.
387 widl: Generate correct size and alignment for all types.
388 msi: Only delete empty registry keys in delete_key().
389 msi/tests: Simplify and clarify WriteRegistryValues and RemoveRegistryValues tests.
390 msi/tests: Test deferral of WriteRegistryValues.
391 msi/tests: Test that some actions cause resolution of SourceDir.
392 msi: Resolve source when executing InstallFiles.
393 msi: Store the current script in the package.
394 include: Add some WOW64 definitions.
395 msvcrt: Avoid using inline assembly in continue_after_catch().
396 msvcrt: Avoid using inline assembly in call_finally_block().
397 msvcrt: Avoid using inline assembly in call_filter().
400 user32: Return 1 in DrawTextEx() when calculated offset is 0.
401 user32: Respect margins more in DrawTextExW().