http://bugs.winehq.org/show_bug.cgi?id=33538
Bug #: 33538 Summary: rewind-plush 64K demo crashes in wine Product: Wine Version: 1.5.29 Platform: x86 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: opengl AssignedTo: wine-bugs@winehq.org ReportedBy: t.artem@mailcity.com Classification: Unclassified
Created attachment 44386 --> http://bugs.winehq.org/attachment.cgi?id=44386 Demo
Backtrace: =>0 0x7e3ac27c glGenTextures+0x7c() in opengl32 (0x00cde9e0) 1 0x004082a0 in rewind-plush (+0x829f) (0x00cde9fc) 0x7e3ac27c glGenTextures+0x7c in opengl32: call *0x1b0(%edx)
http://bugs.winehq.org/show_bug.cgi?id=33538
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download Status|UNCONFIRMED |NEW Ever Confirmed|0 |1
--- Comment #1 from Austin English austinenglish@gmail.com 2013-05-06 16:06:45 CDT --- Confirming:
wine: Unhandled page fault on read access to 0x000001b0 at address 0x7e534b17 (thread 0026), starting debugger... .. Backtrace: =>0 0x7e534b17 glGenTextures+0x77(n=0x1, textures=0x21ffe8) [/home/austin/wine-git/dlls/opengl32/opengl_norm.c:902] in opengl32 (0x00cde9f0) 1 0x004082a0 in rewind-plush (+0x829f) (0x00cdea0c) 0x7e534b17 glGenTextures+0x77 [/home/austin/wine-git/dlls/opengl32/opengl_norm.c:902] in opengl32: call *0x1b0(%esi) 902 funcs->gl.p_glGenTextures( n, textures );
wine-1.5.29-70-gd5fc4ce
http://bugs.winehq.org/show_bug.cgi?id=33538
--- Comment #2 from joaopa jeremielapuree@yahoo.fr 2013-05-08 15:33:37 CDT --- Created attachment 44398 --> http://bugs.winehq.org/attachment.cgi?id=44398 backtrace with opengl debug installed
https://bugs.winehq.org/show_bug.cgi?id=33538
--- Comment #3 from Artem S. Tashkinov t.artem@mailcity.com --- In Wine 1.7.40 it has no visuals and then it crashes 15 seconds through the demo:
=>0 0x7e07a343 (0x41894c1c) 0x7e07a343: movl 0x0(%esi),%edi
https://bugs.winehq.org/show_bug.cgi?id=33538
super_man@post.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |super_man@post.com
--- Comment #4 from super_man@post.com --- Works here
OpenGL core profile version string: 3.3 (Core Profile) Mesa 11.3.0-devel (git-ce84a92 2016-04-10 trusty-oibaf-ppa)
wine-1.9.7-133-gad7cb43
https://bugs.winehq.org/show_bug.cgi?id=33538
super_man@post.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |00cpxxx@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=33538
--- Comment #5 from Artem S. Tashkinov t.artem@mailcity.com --- (In reply to super_man from comment #4)
Works here
OpenGL core profile version string: 3.3 (Core Profile) Mesa 11.3.0-devel (git-ce84a92 2016-04-10 trusty-oibaf-ppa)
wine-1.9.7-133-gad7cb43
Still crashing here with NVIDIA and Wine 1.9.7:
Backtrace: =>0 0x7df82343 (0x41894c1c) 0x7df82343: movl 0x0(%esi),%edi Modules: Module Address Debug info Name (87 modules) PE 400000- 6b7000 Deferred rewind-plush ELF 7917b000-7b400000 Deferred libnvidia-glcore.so.361.28
https://bugs.winehq.org/show_bug.cgi?id=33538
--- Comment #6 from super_man@post.com --- I am using intel skylake gpu.
https://bugs.winehq.org/show_bug.cgi?id=33538
joaopa jeremielapuree@yahoo.fr changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jeremielapuree@yahoo.fr
--- Comment #7 from joaopa jeremielapuree@yahoo.fr --- Works fine with intel GPU. Does not work with nvidia GPU and proprietary driver. . Tested with wine-4.0-rc2.
https://bugs.winehq.org/show_bug.cgi?id=33538
Paul Gofman gofmanp@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |gofmanp@gmail.com
--- Comment #8 from Paul Gofman gofmanp@gmail.com --- Created attachment 63076 --> https://bugs.winehq.org/attachment.cgi?id=63076 Proof of concept patch
Demo crashes Nvidia opengl driver in glMultiDrawElementsEXT() by enabling texture coordinate array and not setting a pointer for it for the second texture (see trace snippet below). Mesa driver lets an application to somehow get away with that while Nvidia does not. I am attaching a proof of concept patch which works around the crash.
The rendering is still glitchy though. It can be made better (white screens avoided) by running with WINDEBUG=warn+heap. I suppose there is some uninitialized or out of bounds memory access involved which is workarounded by memory initialization done in heap management code when warnings are on (somehow it does not like zero initialized memory space). I was not fully tracking this part of the mess though.
As a bottom line, it does not look like a Wine bug or even something that can be sensibly worked around on the Wine side. The only "fix" I could imagine is re-implementing opengl state tracker on the Wine side to workaround the undefined behaviour cases, which does not make any sense.
---- snip ---- ... 0009:trace:opengl:glEnd () 0009:trace:opengl:glPopMatrix () 0009:trace:opengl:glMatrixMode (5889) 0009:trace:opengl:glPopMatrix () 0009:trace:opengl:glMatrixMode (5888) 0009:trace:opengl:glEnable (2929) 0009:trace:opengl:glColor4f (0.937000, 0.686000, 0.086000, 1.000000) 0009:trace:opengl:glActiveTextureARB (33984) 0009:trace:opengl:glEnable (3553) 0009:trace:opengl:glPushMatrix () 0009:trace:opengl:glRotatef (90.000000, 1.000000, 0.000000, 0.000000) 0009:trace:opengl:glFrontFace (2304) 0009:trace:opengl:glEnableClientState (32884) 0009:trace:opengl:glEnableClientState (32888) 0009:trace:opengl:glClientActiveTextureARB (33985) 0009:trace:opengl:glEnableClientState (32888) 0009:trace:opengl:glClientActiveTextureARB (33984) 0009:trace:opengl:glBindTexture (3553, 8) 0009:trace:opengl:glVertexPointer (3, 5126, 20, 0xe38368) 0009:trace:opengl:glTexCoordPointer (2, 5126, 20, 0xe38374) 0009:trace:opengl:glMultiDrawElementsEXT (5, 0xe38c10, 5125, 0xe38c38, 8) ---- snip ---
https://bugs.winehq.org/show_bug.cgi?id=33538
Artem S. Tashkinov aros@gmx.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |INVALID
--- Comment #9 from Artem S. Tashkinov aros@gmx.com --- (In reply to Paul Gofman from comment #8)
As a bottom line, it does not look like a Wine bug or even something that can be sensibly worked around on the Wine side. The only "fix" I could imagine is re-implementing opengl state tracker on the Wine side to workaround the undefined behaviour cases, which does not make any sense.
Let's close it then.
https://bugs.winehq.org/show_bug.cgi?id=33538
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #10 from Austin English austinenglish@gmail.com --- Closing.