http://bugs.winehq.org/show_bug.cgi?id=21323
Summary: Spelunky 0.98.1 crashes after config screen Product: Wine Version: 1.1.36 Platform: x86 URL: http://videogame2play.com/downloads/spelunky_0_98_1.ra r OS/Version: Linux Status: NEW Keywords: download Severity: normal Priority: P2 Component: directx-d3d AssignedTo: wine-bugs@winehq.org ReportedBy: jeffz@jeffz.name
Following on from bug 15268, version 0.98.1 of spelunky (1.1 works ok) crashes in wined3d after clicking ok on the config screen, backtrace attached.
To reproduce:
mkdir spelunky && cd spelunky wget http://videogame2play.com/downloads/spelunky_0_98_1.rar unrar x spelunky_0_98_1.rar wine winedbg spelunky_0_98_1.exe c
http://bugs.winehq.org/show_bug.cgi?id=21323
--- Comment #1 from Jeff Zaroyko jeffz@jeffz.name 2010-01-10 21:49:16 --- Created an attachment (id=25661) --> (http://bugs.winehq.org/attachment.cgi?id=25661) backtrace in wined3d
http://bugs.winehq.org/show_bug.cgi?id=21323
--- Comment #2 from Jeff Zaroyko jeffz@jeffz.name 2010-02-03 21:27:36 --- still present wine-1.1.37-412-g9a92f9c, for some reason context->gl_info is 0x1a
http://bugs.winehq.org/show_bug.cgi?id=21323
--- Comment #3 from Henri Verbeet hverbeet@gmail.com 2010-02-04 06:30:07 --- What does +d3d look like?
http://bugs.winehq.org/show_bug.cgi?id=21323
--- Comment #4 from Jeff Zaroyko jeffz@jeffz.name 2010-02-04 07:02:01 --- Created an attachment (id=26050) --> (http://bugs.winehq.org/attachment.cgi?id=26050) +d3d,+seh also tracing %p for gl_info
http://bugs.winehq.org/show_bug.cgi?id=21323
--- Comment #5 from Henri Verbeet hverbeet@gmail.com 2010-02-04 07:33:05 --- (In reply to comment #4)
trace:d3d:IWineD3DSwapChainImpl_SetDestWindowOverride Performing dest override of swapchain 0x1a3c7a0 from window 0x3003c to 0x4003c
That's probably the problem. I don't know if SetDestWindowOverride() works correctly or if it ever did, but at the very least it needs to happen before acquiring a context.
http://bugs.winehq.org/show_bug.cgi?id=21323
--- Comment #6 from Henri Verbeet hverbeet@gmail.com 2010-02-04 07:33:59 --- Created an attachment (id=26051) --> (http://bugs.winehq.org/attachment.cgi?id=26051) patch
I doubt this patch fixes the game, but does it make any difference?
http://bugs.winehq.org/show_bug.cgi?id=21323
--- Comment #7 from Jeff Zaroyko jeffz@jeffz.name 2010-02-04 07:44:24 --- (In reply to comment #6)
Created an attachment (id=26051)
--> (http://bugs.winehq.org/attachment.cgi?id=26051) [details]
patch
I doubt this patch fixes the game, but does it make any difference?
The previous crash is gone, but a GLXBadDrawable is still generated.
http://bugs.winehq.org/show_bug.cgi?id=21323
--- Comment #8 from Henri Verbeet hverbeet@gmail.com 2010-02-04 08:16:59 --- Could you post another log, but this time with the patch applied and +d3d,+wgl,+win,+synchronous,+seh,+tid?
http://bugs.winehq.org/show_bug.cgi?id=21323
--- Comment #9 from Jeff Zaroyko jeffz@jeffz.name 2010-02-04 14:33:05 --- Created an attachment (id=26053) --> (http://bugs.winehq.org/attachment.cgi?id=26053) +d3d,+wgl,+win,+synchronous,+seh,+tid with patch applied
http://bugs.winehq.org/show_bug.cgi?id=21323
Henri Verbeet hverbeet@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #26051|0 |1 is obsolete| |
--- Comment #10 from Henri Verbeet hverbeet@gmail.com 2010-02-05 10:56:08 --- Created an attachment (id=26064) --> (http://bugs.winehq.org/attachment.cgi?id=26064) hack
What seems to happen is that the application creates a swapchain on one window, destroys it, creates a new window and then uses the "hDestWindowOverride" parameter to present to redirect the swapchain to the new window. That's probably questionable behaviour from the application, but should work.
This breaks because IWineD3DSwapChainImpl_SetDestWindowOverride() now works with a context that's current on a Drawable that doesn't exist anymore. I'm wondering if IWineD3DSwapChainImpl_SetDestWindowOverride() really has to go through all this trouble to destroy the context and recreate it though. Could you apply the attached hack to current git and create a new log?
http://bugs.winehq.org/show_bug.cgi?id=21323
--- Comment #11 from Jeff Zaroyko jeffz@jeffz.name 2010-02-05 16:19:46 --- Created an attachment (id=26069) --> (http://bugs.winehq.org/attachment.cgi?id=26069) +d3d,+wgl,+win,+synchronous,+seh,+tid with hack applied against 1.1.38
http://bugs.winehq.org/show_bug.cgi?id=21323
--- Comment #12 from Henri Verbeet hverbeet@gmail.com 2010-03-08 14:58:37 --- Does the patch attached to bug 26696 (http://bugs.winehq.org/attachment.cgi?id=26696) help?
http://bugs.winehq.org/show_bug.cgi?id=21323
--- Comment #13 from Henri Verbeet hverbeet@gmail.com 2010-03-08 14:59:56 --- (In reply to comment #12)
bug 26696
That should be bug 21784.
http://bugs.winehq.org/show_bug.cgi?id=21323
--- Comment #14 from Jeff Zaroyko jeffz@jeffz.name 2010-03-08 16:25:10 --- (In reply to comment #13)
(In reply to comment #12)
bug 26696
That should be bug 21784.
Yep, that helps both 0.98.1 Spelunky and 2009-10-01 dated Runman: Race Around the World, both Gamemaker games.
Spelunky does crash on exit, but maybe that's unrelated.
The other Gamemaker game is Glum Buster, which crashes in context_aquire, with or without the patch, I'll file a separate bug for that. See bug 21984.
http://bugs.winehq.org/show_bug.cgi?id=21323
--- Comment #15 from Jeff Zaroyko jeffz@jeffz.name 2010-03-08 16:28:22 --- Created an attachment (id=26699) --> (http://bugs.winehq.org/attachment.cgi?id=26699) just for reference, spelunky crash on exit
http://bugs.winehq.org/show_bug.cgi?id=21323
--- Comment #16 from Henri Verbeet hverbeet@gmail.com 2010-03-16 13:06:27 --- Should be fixed by 78166b0b23a1c0ce81f19c7c85dc18a0d672425d. You'll probably want to file a new bug for the crash on exit.
http://bugs.winehq.org/show_bug.cgi?id=21323
Jeff Zaroyko jeffz@jeffz.name changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED
--- Comment #17 from Jeff Zaroyko jeffz@jeffz.name 2010-03-16 15:52:21 --- Yep - fixed.
http://bugs.winehq.org/show_bug.cgi?id=21323
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #18 from Alexandre Julliard julliard@winehq.org 2010-03-19 14:10:48 --- Closing bugs fixed in 1.1.41.