[Bug 48898] 4k demoscene OpenGL demos crash on startup due to missing opengl32.dll 'wglGetDefaultProcAddress' stub (Crinkler's imports resolver requires named API exports matching native opengl32)

WineHQ Bugzilla wine-bugs at winehq.org
Mon Apr 27 04:36:25 CDT 2020


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

--- Comment #12 from Anastasius Focht <focht at gmx.net> ---
Hello Chris,

--- quote ---
I cannot verify this is fixed with my distribution's build of 5.7, or with my
own build of 5.7. Would this require completely obliterating my prefixes to
verify?
--- quote ---

well, it seems the demos suffer from more issues then ;-)

--- snip ---
$ WINEDEBUG=+seh,+relay,+wgl,+opengl,+win,+msg,+winmm wine ./End\ of\ time\
720p.exe >>log.txt 2>&1
...
002c:Call winex11.drv.CreateDesktopWindow(00010020) ret=7e84b47d
002c:Ret  winex11.drv.CreateDesktopWindow() retval=00000001 ret=7e84b47d 
...
002c:Call
winex11.drv.GetDC(00030039,00010020,00010020,1518fdd0,1518fde0,00000013)
ret=7e88682e
002c:Ret  winex11.drv.GetDC() retval=00000001 ret=7e88682e
002c:trace:win:GetDCEx (0x10020,(nil),0x13): returning 0x30039 (updated)
002c:Ret  user32.GetDC() retval=00030039 ret=004200fb
...
002c:trace:wgl:glxdrv_wglDescribePixelFormat (0x30039,72,40,0x1518fe18)
002c:trace:wgl:get_pixel_format Returning fmt_id=0x11a for iPixelFormat=72
002c:trace:wgl:dump_PIXELFORMATDESCRIPTOR size 40 version 1 flags 37 type 0
color 32 8,8,8,8 accum 0 depth 24 stencil 8 aux 0 PFD_DOUBLEBUFFER
PFD_DRAW_TO_WINDOW PFD_SUPPORT_OPENGL 
002c:trace:wgl:wglChoosePixelFormat returning 4
002c:Ret  opengl32.wglChoosePixelFormat() retval=00000004 ret=7e5a3e18
002c:Ret  gdi32.ChoosePixelFormat() retval=00000004 ret=00420111
002c:Call gdi32.SetPixelFormat(00030039,00000004,00000000) ret=00420119
002c:Call opengl32.wglSetPixelFormat(00030039,00000004,00000000) ret=7e5a3fbd
002c:Call gdi32.__wine_get_wgl_driver(00030039,00000015) ret=7a8bb654
002c:Call ntdll.RtlRunOnceExecuteOnce(7e4f4a64,7e4929c0,00000000,00000000)
ret=7b043505
002c:Ret  ntdll.RtlRunOnceExecuteOnce() retval=00000000 ret=7b043505
002c:Ret  gdi32.__wine_get_wgl_driver() retval=7e4f1040 ret=7a8bb654
002c:trace:wgl:set_pixel_format (0x30039,4)
002c:warn:wgl:set_pixel_format not a valid window DC 0x30039/0x10020
002c:Ret  opengl32.wglSetPixelFormat() retval=00000000 ret=7e5a3fbd
002c:Ret  gdi32.SetPixelFormat() retval=00000000 ret=00420119
002c:Call opengl32.wglCreateContext(00030039) ret=0042011f
002c:Call gdi32.__wine_get_wgl_driver(00030039,00000015) ret=7a8ba743
...
002c:Ret  gdi32.__wine_get_wgl_driver() retval=7e4f1040 ret=7a8ba743
002c:Ret  opengl32.wglCreateContext() retval=00000000 ret=0042011f
002c:Call opengl32.wglMakeCurrent(00030039,00000000) ret=00420127
002c:Ret  opengl32.wglMakeCurrent() retval=00000001 ret=00420127
002c:Call user32.ShowCursor(00000000) ret=0042012d
002c:Call winex11.drv.SetCursor(00000000) ret=7e835d31
002c:Ret  winex11.drv.SetCursor() retval=00000000 ret=7e835d31
002c:Ret  user32.ShowCursor() retval=ffffffff ret=0042012d
002c:Call opengl32.glGenTextures(00000001,00422410) ret=004202d9
002c:trace:opengl:glGenTextures (1, 0x422410)
002c:Ret  opengl32.glGenTextures() retval=0000002e ret=004202d9 
002c:Call
winmm.waveOutOpen(03ab08e8,ffffffff,00421330,00000000,00000000,00000000)
ret=00420155
002c:trace:winmm:waveOutOpen (03AB08E8, 4294967295, 00421330, 0, 0, 00000000)
002c:trace:winmm:WINMM_StartDevicesThread Starting up devices thread 
...
002c:Ret  winmm.waveOutOpen() retval=00000000 ret=00420155
002c:Call winmm.waveOutPrepareHeader(0000ff00,00421230,00000020) ret=00420161
...
002c:Ret  winmm.waveOutPrepareHeader() retval=00000000 ret=00420161 
...
002c:Call winmm.waveOutWrite(0000ff00,00421230,00000020) ret=0042016d
...
002c:Ret  winmm.waveOutWrite() retval=00000000 ret=0042016d
002c:Call winmm.waveOutGetPosition(0000ff00,00421200,0000000c) ret=00420186
002c:trace:winmm:waveOutGetPosition (0000FF00, 00421200, 12)
...
002c:Ret  winmm.waveOutGetPosition() retval=00000000 ret=00420186
002c:Call opengl32.wglGetProcAddress(00421314 "glCreateShaderProgramv")
ret=00420814
002c:warn:wgl:wglGetProcAddress No active WGL context found
002c:Ret  opengl32.wglGetProcAddress() retval=00000000 ret=00420814
...
002c:trace:seh:raise_exception code=c0000005 flags=0 addr=(nil) ip=00000000
tid=002c
002c:trace:seh:raise_exception  info[0]=00000000
002c:trace:seh:raise_exception  info[1]=00000000
002c:trace:seh:raise_exception  eax=00000000 ebx=00400148 ecx=00421250
edx=00000000 esi=7a847bbc edi=00030039
002c:trace:seh:raise_exception  ebp=1518fefc esp=1518fedc cs=0023 ds=002b
es=002b fs=0063 gs=006b flags=00010206
002c:trace:seh:call_stack_handlers calling handler at 0x7b46adb0 code=c0000005
flags=0
...
wine: Unhandled page fault on read access to 00000000 at address 00000000
(thread 002c), starting debugger... 
--- snip ---

The crash is not related to opengl32 exports/ordering this bug is about.

To me it looks like bug 18490 ("Multiple games fail to set pixel format on D3D
device context created on desktop window (Empire: Total War, Napoleon: Total
War, Utopia City)") but for GL device context on the desktop window.

According to online information it's not allowed to do any rendering using this
context but enough to call functions like glGetString() etc. 

Maybe some of the Wine graphics folks could weigh in with an opinion if this
limitation is already known / tracked in a bug?

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