http://bugs.winehq.org/show_bug.cgi?id=33890
Bug #: 33890 Summary: Anno 1602 (demo): crash during startup Product: Wine Version: 1.6-rc3 Platform: x86-64 URL: http://www.annomuseum.de/webseiten/SF/www.anno1602.de/ english/downloads/download_demos.html OS/Version: Linux Status: NEW Keywords: download Severity: normal Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: frederic.delanoy@gmail.com Classification: Unclassified
Created attachment 44987 --> http://bugs.winehq.org/attachment.cgi?id=44987 Terminal log + crash - wine-1.6-rc3-38-g9c49367
Install the demo version and try to start it => crashes after a splash screen is shown for half a second or so
Using wine-1.6-rc3-38-g9c49367
http://bugs.winehq.org/show_bug.cgi?id=33890
GyB gyebro69@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |regression CC| |gyebro69@gmail.com, | |stefan@codeweavers.com Component|-unknown |directx-d3d Regression SHA1| |6560135c64550343be95a83532c | |ad78aa5787f5a
--- Comment #1 from GyB gyebro69@gmail.com 2013-08-13 13:09:07 CDT --- I can reproduce the problem, still present in Wine 1.7.0. In fact, this is a regression from Wine-1.6-rc1:
6560135c64550343be95a83532cad78aa5787f5a is the first bad commit commit 6560135c64550343be95a83532cad78aa5787f5a Author: Stefan Dösinger stefan@codeweavers.com Date: Wed Jun 5 10:55:39 2013 +0200
ddraw: Update the focus window after recreating the swapchain.
:040000 040000 a5de53756a31f03454eb494fcbc113ad5a706ee2 d5c112ee5270900704400b4d1db03ef0bb9ae912 M dlls
http://bugs.winehq.org/show_bug.cgi?id=33890
--- Comment #2 from Stefan Dösinger stefan@codeweavers.com 2013-08-18 13:43:24 CDT --- I can reproduce this, will look into it.
http://bugs.winehq.org/show_bug.cgi?id=33890
--- Comment #3 from Stefan Dösinger stefan@codeweavers.com 2013-08-21 06:32:26 CDT --- I'm not entirely sure what is going on here. The SetWindowPos call in wined3d_device_acquire_focus_window sends a WM_ACTIVATEAPP message, which prompts the app to call SetCooperativeLevel again. During the second call, ddraw attempts to recreate the swapchain. It thinks the application-provided window is a hidden d3d window it itself created because ddraw->dest_window is not set yet. The destruction of the Window causes the app to destroy the ddraw object. During the destruction, SetCooperativeLevel is called recursively another time to set DDSCL_NORMAL, which succeeds. Then, it proceeds with the second SetCooperativeLevel call, which eventually fails because ddraw->wine_d3d is NULL, so wined3d_get_adapter_display_mode segfaults.
I suspect that the WM_ACTIVATEAPP message that triggers the recursion is wrong, but have no proof for that yet. I have to compare with a Wine version before commit 6560135c to see if the ACTIVATEAPP message and recursive calls happen there or not. If they don't, I have to figure out why, because so far that's not obvious. If they happen, and I think they do, I have to find out if this is in line with Windows' behaviour, and if so, how the application got away with the recursive call prior to 6560135c.
A simple workaround for the crash is to set device->filter_messages to 1 for the SetWindowPos call in wined3d_device_acquire_focus_window. However, I don't know if this is correct.
http://bugs.winehq.org/show_bug.cgi?id=33890
--- Comment #4 from Stefan Dösinger stefan@codeweavers.com 2013-08-21 07:01:55 CDT --- The version prior to 6560135c also have the first recursive SetCooperativeLevel call. The game works because there's no swapchain yet that could be destroyed, so ddraw doesn't destroy the application's window.
http://bugs.winehq.org/show_bug.cgi?id=33890
Stefan Dösinger stefan@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |769dd6d158ea1ef66e33a141672 | |4511cc4eaf1e5 Status|NEW |RESOLVED Resolution| |FIXED
--- Comment #5 from Stefan Dösinger stefan@codeweavers.com 2013-09-03 03:49:32 CDT --- Should be fixed by 769dd6d158ea1ef66e33a1416724511cc4eaf1e5.
http://bugs.winehq.org/show_bug.cgi?id=33890
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #6 from Alexandre Julliard julliard@winehq.org 2013-09-13 13:20:23 CDT --- Closing bugs fixed in 1.7.2.
http://bugs.winehq.org/show_bug.cgi?id=33890
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |1.6.x
http://bugs.winehq.org/show_bug.cgi?id=33890
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|1.6.x |---
--- Comment #7 from Alexandre Julliard julliard@winehq.org 2013-11-15 13:40:07 CST --- Removing 1.6.x milestone from bugs included in 1.6.1.