http://bugs.winehq.org/show_bug.cgi?id=21804
Summary: FPS Creator trial crashes on startup Product: Wine Version: 1.1.39 Platform: x86 URL: http://www.fpscreator.com/ OS/Version: Linux Status: NEW Keywords: download Severity: normal Priority: P2 Component: winex11.drv AssignedTo: wine-bugs@winehq.org ReportedBy: dank@kegel.com
The app installs ok, but crashes like this on startup:
002e:Call user32.EnumDisplaySettingsExW(00000000,ffffffff,00e1e978,00000000) ret=7d609338 002e:Ret user32.EnumDisplaySettingsExW() retval=00000001 ret=7d609338 002e:Call user32.GetClientRect(001000f2,00e1ebdc) ret=7d6a7f84 002e:Ret user32.GetClientRect() retval=00000001 ret=7d6a7f84 002e:Call user32.GetDC(001000f2) ret=7d5cf06d trace:x11drv:X11DRV_ExtEscape QQQ X11DRV_ExtEscape 6789 trace:x11drv:X11DRV_ExtEscape QQ switch 3 trace:x11drv:X11DRV_ExtEscape SET_DRAWABLE hdc 0x654 drawable 4a00006 gl_drawable 0 pf 0 dc_rect (148,52)-(1024,676) drawable_rect (0,49)-(1024,742) 002e:Ret user32.GetDC() retval=00000654 ret=7d5cf06d 002e:Call gdi32.DescribePixelFormat(00000654,00000001,00000028,00e1e86c) ret=7d5cf440 002e:Ret gdi32.DescribePixelFormat() retval=00000044 ret=7d5cf440 002e:Call gdi32.SetPixelFormat(00000654,00000001,00000000) ret=7d5cf45d trace:seh:raise_exception code=c0000005 flags=0 addr=(nil) ip=00000000 tid=002c Unhandled exception: page fault on read access to 0x00000000 in 32-bit code (0x00000000). Backtrace: =>0 0x00000000 (0x0032eed8) 1 ConvertPixelFormatGLXtoWGL+0x2c(display=0x7d54bd68, fmt_id=0x0075, dwFlags=0) [winex11.drv/opengl.c:1041] in winex11 (0x0032ef28) 2 visual_from_fbconfig_id+0x31(fbconfig_id=0x0075) [winex11.drv/opengl.c:3742] in winex11 (0x0032ef58) 3 set_win_format+0x59(hwnd=0x1000f2, fbconfig_id=0x0075) [winex11.drv/window.c:530] in winex11 (0x0032f028) 4 X11DRV_WindowMessage+0x74(hwnd=0x1000f2, msg=0x80001001, wp=0x0075, lp=0) [winex11.drv/window.c:2338] in winex11 (0x0032f078) 5 handle_internal_message+0x225(hwnd=0x1000f2, msg=0x80001001, wparam=0x0075, lparam=0) [user32/message.c:1308] in user32 (0x0032f0b8) 6 call_window_proc+0x34(hwnd=0x1000f2, msg=0x80001001, wparam=0x0075, lparam=0, unicode=0x0001, same_thread=0, mapping=WMCHAR_MAP_RECVMESSAGE) [user32/message.c:1621] in user32 (0x0032f118) 7 peek_message+0xae5(msg=0x156428, hwnd=(nil), first=0, last=0xffffffff, flags=0x4ff0001, changed_mask=0x04ff) [user32/message.c:2208] in user32 (0x0032f438) 8 GetMessageW+0x14f(msg=0x156428, hwnd=(nil), first=0, last=0) [user32/message.c:2944] in user32 (0x0032f478) 9 GetMessageA+0x60(msg=0x156428, hwnd=(nil), first=0, last=0) [user32/message.c:2959] in user32 (0x0032f498)
http://bugs.winehq.org/show_bug.cgi?id=21804
Roderick Colenbrander thunderbird2k@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |thunderbird2k@gmail.com Component|winex11.drv |opengl
--- Comment #1 from Roderick Colenbrander thunderbird2k@gmail.com 2010-03-21 17:06:11 --- Marking this as an opengl bug.
http://bugs.winehq.org/show_bug.cgi?id=21804
--- Comment #2 from Roderick Colenbrander thunderbird2k@gmail.com 2010-04-26 09:27:37 --- Created an attachment (id=27566) --> (http://bugs.winehq.org/attachment.cgi?id=27566) Possible fix
Could you give this patch a try? It at least fixes the crash but at least on my ati laptop the app seems to be frozen.
http://bugs.winehq.org/show_bug.cgi?id=21804
--- Comment #3 from Roderick Colenbrander thunderbird2k@gmail.com 2010-04-27 07:01:21 --- It doesn't fully work on Nvidia either. I end up with a GLXBadDrawable error probably due to multithreading issues.
http://bugs.winehq.org/show_bug.cgi?id=21804
--- Comment #4 from Roderick Colenbrander thunderbird2k@gmail.com 2010-04-27 08:54:31 --- The issue is that SetPixelFormat under the hood issues the creation of a opengl child window which seems to happen in a different thread. The thread which called SetPixelFormat then continues creating a WGL context and making that context current. The physdev hasn't been updated with the opengl child window and because of this makes the wrong window current. At a later stage when SwapBuffers is called, the physdev contains the right gl_drawable but the 'bad' drawable is current resulting in GLXBadDrawable. Somehow a physdev update needs to be forced and I think this can be done by passing the right flags to GetDCEx.
http://bugs.winehq.org/show_bug.cgi?id=21804
--- Comment #5 from Roderick Colenbrander thunderbird2k@gmail.com 2010-05-10 12:02:30 --- I have posted two patches (patch 2/3 and 3/3 of todays series) which should fix this crash. The 3d view works then but the app quickly pops up some error dialog saying something is wrong. Hopefully the fixes enter git tomorrow, so this bug can be closed :)
http://bugs.winehq.org/show_bug.cgi?id=21804
Roderick Colenbrander thunderbird2k@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|opengl |user32
--- Comment #6 from Roderick Colenbrander thunderbird2k@gmail.com 2010-05-13 13:44:32 --- Well this bug is more complicated than it appeared and are more at AJ level. The '3d view' of FPS Creator is a different process.
The '3d view' (actually wined3d does it for it) calls GetDC, SetPixelFormat and wglMakeCurrent. The 'set_win_format' part of SetPixelFormat is carried out in another thread (owned by the main app?). This explains why opengl wasn't initialized in the 'main app' (this is the part the attached patch fixed).
After adding the first patch, the more serious issue becomes clear. The 'set_win_format' function calls SetWindowPos to mark the window dirty. Normally this works fine but in this case there is no dce associated with this window in the 'main process' (because the call to GetDC was made from the other process). This causes the physDev not to be up to date in the wglMakeCurrent call. Marking it as dirty after SetPixelFormat by hand like my other patch did wasn't fully correct.
Quoting AJ from IRC: '<Thunderbird> do you have a suggestion how it should be fixed or where to look? don't know this stuff that well.. <julliard> it would need to have some inter-process dce management, fairly tricky
http://bugs.winehq.org/show_bug.cgi?id=21804
--- Comment #7 from Austin English austinenglish@gmail.com 2012-07-27 18:47:03 CDT --- http://files.thegamecreators.com/betafiles/FPSCreatorFree.zip
austin@debian:~$ sha1sum FPSCreatorFree.zip ccb8ed8d96453c746a49c262d326b1855d68abc7 FPSCreatorFree.zip austin@debian:~$ du -h FPSCreatorFree.zip 113M FPSCreatorFree.zip
Backtrace: =>0 0x00000000 (0x0032ee98) 1 0x7df81895 ConvertPixelFormatGLXtoWGL+0x24(display=<is not available>, fmt_id=0, dwFlags=0) [/home/austin/wine-git/dlls/winex11.drv/opengl.c:1071] in winex11 (0x0032eef8) 2 0x7df87811 visual_from_fbconfig_id+0x30(fbconfig_id=0x75) [/home/austin/wine-git/dlls/winex11.drv/opengl.c:2985] in winex11 (0x0032ef28) 3 0x7df959b5 X11DRV_WindowMessage+0x114(hwnd=0xe00e4, msg=0x80001001, wp=0x75, lp=0) [/home/austin/wine-git/dlls/winex11.drv/window.c:545] in winex11 (0x0032efc8) 4 0x7eca674e handle_internal_message+0x27d(hwnd=0xe00e4, msg=<is not available>, wparam=0x75, lparam=0) [/home/austin/wine-git/dlls/user32/message.c:1882] in user32 (0x0032f028) 5 0x7eca6859 call_window_proc+0xf8(hwnd=<is not available>, msg=0x80001001, wparam=0x75, lparam=0, unicode=0x1, same_thread=0, mapping=WMCHAR_MAP_RECVMESSAGE) [/home/austin/wine-git/dlls/user32/message.c:2198] in user32 (0x0032f098) 6 0x7eca94c4 peek_message+0x2b3(msg=0x135260, hwnd=(nil), first=0, last=0xffffffff, flags=0x4ff0001, changed_mask=0x4ff) [/home/austin/wine-git/dlls/user32/message.c:2817] in user32 (0x0032f468) 7 0x7ecac5e0 GetMessageW+0x12a(msg=0x135260, hwnd=(nil), first=0, last=0) [/home/austin/wine-git/dlls/user32/message.c:3624] in user32 (0x0032f4c8) 8 0x7ecac71f GetMessageA+0xa9(msg=0x135260, hwnd=(nil), first=0, last=0) [/home/austin/wine-git/dlls/user32/message.c:3639] in user32 (0x0032f4f8) 9 0x004870f5 in fpscreator (+0x870f4) (0x7ecb8f90) 0x00000000: -- no code accessible --
still in wine-1.5.9-267-g8f108a0
http://bugs.winehq.org/show_bug.cgi?id=21804
--- Comment #8 from Austin English austinenglish@gmail.com 2012-07-27 18:47:19 CDT --- Created attachment 41180 --> http://bugs.winehq.org/attachment.cgi?id=41180 updated backtrace
https://bugs.winehq.org/show_bug.cgi?id=21804
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |focht@gmx.net Resolution|--- |FIXED
--- Comment #9 from Anastasius Focht focht@gmx.net --- Hello folks,
I don't get the startup crash here.
The app still doesn't work fully due to other Wine bugs.
--- .nip --- .. 0025:fixme:d3dx:D3DXLoadSurfaceFromMemory Format conversion missing 0x31545844 -> 0x31545844 0025:fixme:d3dx:D3DXCreateTextureFromFileInMemoryEx Texture loading failed. 0025:trace:d3dx:D3DXGetImageInfoFromFileA file "texturebank\common\ground_d2.dds", info 0xe1f214. 0025:trace:d3dx:D3DXGetImageInfoFromFileW file L"texturebank\common\ground_d2.dds", info 0xe1f214. 0025:trace:d3dx:D3DXGetImageInfoFromFileInMemory (0xb9c0000, 32896, 0xe1f214) 0025:trace:d3dx:D3DXGetImageInfoFromFileInMemory File type is DDS ... 0025:fixme:d3dx:D3DXLoadSurfaceFromMemory Format conversion missing 0x31545844 -> 0x31545844 0025:fixme:d3dx:D3DXCreateTextureFromFileInMemoryEx Texture loading failed. --- snip ---
With the original startup crash gone, the bug can be considered 'fixed'.
$ sha1sum FPSCreatorFree.zip dccb8ed8d96453c746a49c262d326b1855d68abc7 FPSCreatorFree.zip
$ du -sh FPSCreatorFree.zip 113M FPSCreatorFree.zip
$ wine --version wine-1.7.21-61-gf9f3b21
Regards
https://bugs.winehq.org/show_bug.cgi?id=21804
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #10 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 1.7.22.