[Bug 30600] Emergency 3 crashes on start

wine-bugs at winehq.org wine-bugs at winehq.org
Sun Sep 6 06:29:39 CDT 2015


https://bugs.winehq.org/show_bug.cgi?id=30600

--- Comment #9 from Anastasius Focht <focht at gmx.net> ---
Hello folks,

quartz is not the blocking issue here - unlike in 'Emergency 4'.
The older game seems to handle failure to play intro video better.

My test (comment #3, 2012) was with NVIDIA blob -> ok.

I encountered two problems with my current machines that are either pure
Mesa/Nouveau or "Bumblebee/Optimus" with Mesa/Intel and NVIDIA Blob.

First one is with Mesa/Intel and Mesa/Noveuau setups: they fail very early.

--- snip ---
$ glxinfo | grep OpenGL
OpenGL vendor string: nouveau
OpenGL renderer string: Gallium 0.4 on NVC1
OpenGL core profile version string: 3.3 (Core Profile) Mesa 10.6.3
(git-ccef890)
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 10.6.3 (git-ccef890)
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 10.6.3 (git-ccef890)
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00
OpenGL ES profile extensions:
--- snip ---

--- snip ---
$ glxinfo | grep OpenGL
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Haswell Mobile 
OpenGL core profile version string: 3.3 (Core Profile) Mesa 10.6.3
(git-ccef890)
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 10.6.3 (git-ccef890)
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 10.6.3 (git-ccef890)
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00
OpenGL ES profile extensions:
--- snip ---

--- snip ---
$ pwd
/home/focht/.wine/drive_c/Program Files/sixteen tons entertainment/Emergency 3
Demo

$ WINEDEBUG=+tid,+seh,+relay,+wgl wine ./Em3.exe >>log.txt 2>&1
...
0028:Call gdi32.ChoosePixelFormat(000c0031,008821e0) ret=00662b04
0028:Call opengl32.wglChoosePixelFormat(000c0031,008821e0) ret=7eb6e548
0028:trace:wgl:wglChoosePixelFormat 0xc0031 0x8821e0: size 40 version 1 flags
45 type 0 color 32 0,0,0,0 accum 0 depth 16 stencil 0 aux 0
0028:Call gdi32.__wine_get_wgl_driver(000c0031,0000000d) ret=7a8c3fb9
0028:trace:wgl:X11DRV_WineGL_InitOpenglInfo GL version             : 3.0 Mesa
10.6.3 (git-ccef890).
0028:trace:wgl:X11DRV_WineGL_InitOpenglInfo GL renderer            : Gallium
0.4 on NVC1.
0028:trace:wgl:X11DRV_WineGL_InitOpenglInfo GLX version            : 1.4.
0028:trace:wgl:X11DRV_WineGL_InitOpenglInfo Server GLX version     : 1.4.
0028:trace:wgl:X11DRV_WineGL_InitOpenglInfo Server GLX vendor:     : SGI.
0028:trace:wgl:X11DRV_WineGL_InitOpenglInfo Client GLX version     : 1.4.
0028:trace:wgl:X11DRV_WineGL_InitOpenglInfo Client GLX vendor:     : Mesa
Project and SGI.
0028:trace:wgl:X11DRV_WineGL_InitOpenglInfo Direct rendering enabled: True
0028:trace:wgl:has_opengl GLX is up and running error_base = 170
0028:trace:wgl:register_extension 'WGL_ARB_create_context'
0028:trace:wgl:register_extension 'WGL_ARB_create_context_profile'
0028:trace:wgl:register_extension 'WGL_ARB_pixel_format_float'
0028:trace:wgl:register_extension 'WGL_ATI_pixel_format_float'
0028:trace:wgl:register_extension 'WGL_ARB_extensions_string'
0028:trace:wgl:register_extension 'WGL_ARB_make_current_read'
0028:trace:wgl:register_extension 'WGL_ARB_multisample'
0028:trace:wgl:register_extension 'WGL_ARB_pbuffer'
0028:trace:wgl:register_extension 'WGL_ARB_pixel_format'
0028:trace:wgl:register_extension 'WGL_ARB_render_texture'
0028:trace:wgl:register_extension 'WGL_NV_render_texture_rectangle'
0028:trace:wgl:register_extension 'WGL_EXT_extensions_string'
0028:trace:wgl:register_extension 'WGL_EXT_swap_control'
0028:trace:wgl:register_extension 'WGL_EXT_framebuffer_sRGB'
0028:trace:wgl:register_extension 'WGL_WINE_pixel_format_passthrough'
0028:trace:wgl:init_pixel_formats Found 120 bitmap capable fbconfigs 
...
0028:Call gdi32.SetPixelFormat(000c0031,0000000a,008821e0) ret=00662b15
0028:Call opengl32.wglSetPixelFormat(000c0031,0000000a,008821e0) ret=7eb6e6f4
0028:Call gdi32.__wine_get_wgl_driver(000c0031,0000000d) ret=7a8c3fb9
0028:Ret  gdi32.__wine_get_wgl_driver() retval=7d63cd40 ret=7a8c3fb9
0028:trace:wgl:set_pixel_format (0xc0031,10)
0028:trace:wgl:get_pixel_format Returning fmt_id=0x91 for iPixelFormat=10
0028:trace:wgl:set_pixel_format  FBConfig have :
0028:trace:wgl:set_pixel_format  - FBCONFIG_ID   0x91
0028:trace:wgl:set_pixel_format  - VISUAL_ID     0x1f9
0028:trace:wgl:set_pixel_format  - DRAWABLE_TYPE 0x7
0028:trace:wgl:set_win_format created GL drawable 4400003 for win 0x1006c
format 91
0028:Call
winex11.drv.WindowPosChanging(0001006c,00000000,0000181f,00dcfa20,00dcfa10,00dcf9a8,00dcf984)
ret=7ecd82ba
0028:Ret  winex11.drv.WindowPosChanging() retval=00000000 ret=7ecd82ba
0028:Call
winex11.drv.WindowPosChanged(0001006c,00000000,0000181f,00dcfa20,00dcfa10,00dcf9a8,00000000,00000000)
ret=7ecd87a9
0028:Ret  winex11.drv.WindowPosChanged() retval=00000000 ret=7ecd87a9
0028:Ret  opengl32.wglSetPixelFormat() retval=00000001 ret=7eb6e6f4
0028:Ret  gdi32.SetPixelFormat() retval=00000001 ret=00662b15
0028:Call opengl32.wglCreateContext(000c0031) ret=00662b20
0028:Call gdi32.__wine_get_wgl_driver(000c0031,0000000d) ret=7a8c3fb9
0028:Ret  gdi32.__wine_get_wgl_driver() retval=7d63cd40 ret=7a8c3fb9
0028:trace:wgl:glxdrv_wglCreateContext 0xc0031 -> 0x15b838
0028:Call ntdll.RtlAllocateHeap(00110000,00000008,00000018) ret=7a8c4b93
0028:Ret  ntdll.RtlAllocateHeap() retval=00156360 ret=7a8c4b93
0028:Ret  opengl32.wglCreateContext() retval=00011000 ret=00662b20
0028:Call opengl32.wglMakeCurrent(000c0031,00011000) ret=00662b2e
0028:trace:wgl:glxdrv_wglMakeCurrent (0xc0031,0x15b838)
0028:trace:wgl:describeContext  Context 0x15b838 have (vis:0x7c8dd378):
0028:trace:wgl:describeContext  - FBCONFIG_ID 0x91
0028:trace:wgl:describeContext  - VISUAL_ID 0x1f9
0028:trace:wgl:glxdrv_wglMakeCurrent hdc 0xc0031 drawable 4400003 fmt 0x159ac0
ctx 0x7c8dd510
X Error of failed request:  BadValue (integer parameter out of range for
operation)
  Major opcode of failed request:  154 (GLX)
  Minor opcode of failed request:  3 (X_GLXCreateContext)
  Value in failed request:  0x0
  Serial number of failed request:  196
  Current serial number in output stream:  197 
--- snip ---

Works with NVIDIA blob:

--- snip ---
$ glxinfo | grep OpenGL
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GTX 850M/PCIe/SSE2
OpenGL core profile version string: 4.4.0 NVIDIA 352.21
OpenGL core profile shading language version string: 4.40 NVIDIA via Cg
compiler
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.5.0 NVIDIA 352.21
OpenGL shading language version string: 4.50 NVIDIA
OpenGL context flags: (none)
OpenGL profile mask: (none)
OpenGL extensions: 
--- snip ---

With NVIDIA blob I encountered another albeit expected issue...

Use of "Virtual Desktop" mode and choosing various in-game resolutions from
game launcher dialog.

--- snip ---
$ wine explorer /desktop=foo,800x600 ./Em3.exe
# game launcher selection 800x600 = ok

$ wine explorer /desktop=foo,800x600 ./Em3.exe
# game launcher selection 1024x768 = ok, resized (enlarged) virtual desktop

$ wine explorer /desktop=foo,800x600 ./Em3.exe
# game launcher selection 1280x960 = crash (fails to switch mode)

$ wine explorer /desktop=foo,800x600 ./Em3.exe
# game launcher selection 1280x1024 = ok, resized (enlarged) virtual desktop

$ wine explorer /desktop=foo,1280x960 ./Em3.exe
# game launcher selection 1280x960 = ok

$ wine explorer /desktop=foo,1280x960 ./Em3.exe
# game launcher selection 1280x1024 = ok, resized (enlarged) virtual desktop
--- snip ---

Relevant part of trace log for failing case (vgl is some custom gl/wrapper the
game engine uses):

--- snip ---
...
0037:CALL vision71.?Init at VisVideo_cl@@QAEJPBD0P6AXPAUHWND__@@IIJ at Z@Z(<unknown,
check return>) ret=006639de
0037:CALL vBase71.?VGLInitialize@@YAJPAD0P6AXPAUHWND__@@IIJ at Z@Z(<unknown, check
return>) ret=1003f169 
...
0037:Call KERNEL32.LoadLibraryA(002b117c "OpenGL32.dll") ret=0027b952
0037:Ret  KERNEL32.LoadLibraryA() retval=7a840000 ret=0027b952
0037:RET  vBase71.?VGLInitialize@@YAJPAD0P6AXPAUHWND__@@IIJ at Z@Z()
retval=00000000 ret=1003f169 
...
0037:Call msvcr71.strncpy(00ddbaba,00dcdc38 "Initialising video driver:
0\r\n",0000001e) ret=10011958 
...
0037:RET 
vision71.?Init at VisVideo_cl@@QAEJPBD0P6AXPAUHWND__@@IIJ at Z@Z(00e02468,00e02468,00000000)
retval=00000000 ret=006639de
0037:CALL vision71.?SaveGamma at VisVideo_cl@@QAEXXZ(<unknown, check return>)
ret=006639f8
0037:CALL vBase71.?VGLGetGammaRamp@@YAJPAM00 at Z(101663e4,101667e4,10166be4)
ret=1003f278 
...
0037:RET  vBase71.?VGLGetGammaRamp@@YAJPAM00 at Z() retval=00000000 ret=1003f278
0037:RET  vision71.?SaveGamma at VisVideo_cl@@QAEXXZ() retval=00000000
ret=006639f8 
...
0037:CALL vision71.?SetMode at VisVideo_cl@@QAEJHHJJHHH at Z(<unknown, check return>)
ret=0066378b
0037:CALL vBase71.?VGLSetScreen@@YAJPAUVGLMode_t@@PAUHWND__@@@Z(<unknown, check
return>) ret=1003f329
0037:Call KERNEL32.GetProcAddress(7ecc0000,002b6792 "GetClientRect")
ret=002a74e6
0037:Ret  KERNEL32.GetProcAddress() retval=7ecc99e8 ret=002a74e6
0037:Call user32.GetClientRect(0001009c,00dcfbd8) ret=0027a9b8
0037:Ret  user32.GetClientRect() retval=00000001 ret=0027a9b8
0037:Call user32.EnumDisplaySettingsA(00000000,00000000,00dcfb08) ret=0027a5ce
0037:Call
winex11.drv.EnumDisplaySettingsEx(00000000,00000000,00dcf980,00000000)
ret=7ed40e11
0037:Ret  winex11.drv.EnumDisplaySettingsEx() retval=00000001 ret=7ed40e11
0037:Ret  user32.EnumDisplaySettingsA() retval=00000001 ret=0027a5ce 
...
0037:Call user32.EnumDisplaySettingsA(00000000,0000001e,00dcfb08) ret=0027a5ce
0037:Call
winex11.drv.EnumDisplaySettingsEx(00000000,0000001e,00dcf980,00000000)
ret=7ed40e11
0037:Ret  winex11.drv.EnumDisplaySettingsEx() retval=00000000 ret=7ed40e11
0037:Ret  user32.EnumDisplaySettingsA() retval=00000000 ret=0027a5ce
0037:RET  vBase71.?VGLSetScreen@@YAJPAUVGLMode_t@@PAUHWND__@@@Z()
retval=fffffe6e ret=1003f329 
...
0037:Call msvcr71.strncpy(00ddbad8,00dcdbc0 "Setting screen mode to x:1280 /
y:960 / bpp:32 / refresh:0\r\n",0000003c) ret=10011958 
...
0037:Call msvcr71.strncpy(00ddbb14,00dcdbd4 "Screen Mode is fullscreen, return
value: -402\r\n",0000002f) ret=10011958 
...
0037:Call msvcr71.strncpy(00ddbb43,00dcdbd0 "Stencil buffer: 0 bit / ZBuffer:
24 bit\r\n",00000029) ret=10011958 
...
0037:CALL vBase71.?VGLRestoreScreen@@YAXXZ(<unknown, check return>)
ret=1003f399 
...
0037:Call user32.ChangeDisplaySettingsA(002e6868,00000004) ret=0027a480 
...
0037:Ret  user32.ChangeDisplaySettingsA() retval=00000000 ret=0027a486 
...
0037:RET  vBase71.?VGLRestoreScreen@@YAXXZ() retval=00000000 ret=1003f399
0037:RET 
vision71.?SetMode at VisVideo_cl@@QAEJHHJJHHH at Z(00000500,000003c0,00000020,00000018,00000001,00000000,0001009c)
retval=fffffe6e ret=0066378b 
...
0037:Call msvcr71._vsnprintf(00e13e50,00000800,008325d8
"?VulpineWrapper::ChangeScreenMode(): VERR_NOSCREENMODE - Screen mode could not
be set",00dcfc44) ret=00598545 
...
--- snip ---

At this point the game continues to initialize further (input, sound) and
finally hits some code that was skipped due to failure to switch screen mode
(GL extensions/function pointer table -> NULL) 

So what's the actual problem this bug is about?

$ sha1sum Emergency3_Demo_JeuxVideo.com_9549.zip 
719b6857cfe3ec14f4ae5107506095f85be7f08e 
Emergency3_Demo_JeuxVideo.com_9549.zip

$ du -sh Emergency3_Demo_JeuxVideo.com_9549.zip 
75M    Emergency3_Demo_JeuxVideo.com_9549.zip

$ wine --version
wine-1.7.51

Regards

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list