[Bug 36045] 64k demoscene OpenGL 4.3+ demo 'the timeless' by Mercury crashes in Nvidia driver during GL_TEXTURE_2D mipmap generation

wine-bugs at winehq.org wine-bugs at winehq.org
Sat Aug 9 06:55:00 CDT 2014


http://bugs.winehq.org/show_bug.cgi?id=36045

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
            Summary|the timeless 64k demoscene  |64k demoscene OpenGL 4.3+
                   |demo crashes in Wine        |demo 'the timeless' by
                   |                            |Mercury crashes in Nvidia
                   |                            |driver during GL_TEXTURE_2D
                   |                            |mipmap generation
     Ever confirmed|0                           |1

--- Comment #5 from Anastasius Focht <focht at gmx.net> ---
Hello Artem,

your trace log up to the crash:

--- snip ---
...
0009:trace:opengl:glCreateProgram ()
0009:trace:opengl:glCreateShader (35633)
0009:trace:opengl:glShaderSource (129, 2, 0x32fd30, (nil))
0009:trace:opengl:glCompileShader (129)
0009:trace:opengl:glAttachShader (128, 129)
0009:trace:opengl:glCreateShader (35632)
0009:trace:opengl:glShaderSource (130, 2, 0x32fd30, (nil))
0009:trace:opengl:glCompileShader (130) 
...
0009:trace:opengl:glUseProgram (0)
0009:Call opengl32.glPushMatrix() ret=004030e8
0009:trace:opengl:glPushMatrix ()
0009:Ret  opengl32.glPushMatrix() retval=00000090 ret=004030e8
0009:Call opengl32.glClearColor(00000000,00000000,00000000,3f800000)
ret=00403104
0009:trace:opengl:glClearColor (0.000000, 0.000000, 0.000000, 1.000000)
0009:Ret  opengl32.glClearColor() retval=00000000 ret=00403104
0009:Call opengl32.glClear(00004100) ret=0040310f
0009:trace:opengl:glClear (16640)
0009:Ret  opengl32.glClear() retval=00000000 ret=0040310f
0009:Call opengl32.glViewport(00000000,00000000,00000500,000002d0) ret=00403130
0009:trace:opengl:glViewport (0, 0, 1280, 720)
0009:Ret  opengl32.glViewport() retval=000
...
0009:trace:opengl:glBindFramebuffer (36160, 0)
0009:trace:opengl:glBindFramebuffer (36160, 2)
0009:trace:opengl:glFramebufferTexture2D (36160, 36064, 34069, 4, 0)
0009:Call opengl32.glClearColor(00000000,00000000,00000000,3f800000)
ret=0040177e
0009:trace:opengl:glClearColor (0.000000, 0.000000, 0.000000, 1.000000)
0009:Ret  opengl32.glClearColor() retval=00000000 ret=0040177e
0009:Call opengl32.glClear(00004000) ret=00401789
0009:trace:opengl:glClear (16384)
0009:trace:seh:raise_exception code=c0000005 flags=0 addr=0xb5a337f4
ip=b5a337f4 tid=0009
0009:trace:seh:raise_exception  info[0]=00000000
0009:trace:seh:raise_exception  info[1]=00000008
0009:trace:seh:raise_exception  eax=00000000 ebx=00000000 ecx=00000000
edx=0032d718 esi=00329658 edi=00000000
0009:trace:seh:raise_exception  ebp=00000000 esp=00329620 cs=0073 ds=007b
es=007b fs=0033 gs=003b flags=00010246
0009:trace:seh:call_stack_handlers calling handler at 0x7bc95c70 code=c0000005
flags=0
0009:Call KERNEL32.UnhandledExceptionFilter(00329168) ret=7bc95cad
0009:Call ntdll.NtCreateEvent(003290ec,001f0003,003290a8,00000000,00000000)
ret=7b83bdd4
0009:Ret  ntdll.NtCreateEvent() retval=00000000 ret=7b83bdd4
wine: Unhandled page fault on read access to 0x00000008 at address 0xb5a337f4
(thread 0009), starting debugger... 
--- snip ---

On my Laptop with Intel Haswell HD4600 and NVIDIA GTX 850M using 'optirun' it
doesn't crash but exits:

--- snip ---
003c:Call gdi32.SwapBuffers(00030025) ret=00401150
003c:Call opengl32.wglSwapBuffers(00030025) ret=f42f5b9d
003c:Call gdi32.__wine_get_wgl_driver(00030025,0000000b) ret=f3fcb689
003c:Ret  gdi32.__wine_get_wgl_driver() retval=f3ba9020 ret=f3fcb689
[VGL] ERROR: in readpixels--
[VGL]    376: Could not set PBO size
--- snip ---

After reading up a bit about VirtualGL I could reproduce a crash after passing
'VGL_READBACK=sync' ('VGL_READBACK=pbo' seems to be the default when using
VirtualGL as bridge):

--- snip ---
$ WINEDEBUG=+tid,+seh,+relay,+opengl VGL_READBACK=sync optirun wine
./timeless.exe >>log.txt 2>&1
...
0029:Call opengl32.glBindTexture(00000de1,0000001f) ret=00402dd6
0029:trace:opengl:glBindTexture (3553, 31)
0029:Ret  opengl32.glBindTexture() retval=00000000 ret=00402dd6
0029:Call opengl32.glEnable(00000de1) ret=00402ddd
0029:trace:opengl:glEnable (3553)
0029:Ret  opengl32.glEnable() retval=00000002 ret=00402ddd
0029:trace:opengl:glGenerateMipmap (3553)
0029:Call opengl32.glTexParameteri(00000de1,00002800,00002601) ret=00402df1
0029:trace:opengl:glTexParameteri (3553, 10240, 9729)
0029:Ret  opengl32.glTexParameteri() retval=00000000 ret=00402df1
0029:Call opengl32.glTexParameteri(00000de1,00002801,00002703) ret=00402dfe
0029:trace:opengl:glTexParameteri (3553, 10241, 9987)
0029:Ret  opengl32.glTexParameteri() retval=00000000 ret=00402dfe
0029:Call opengl32.glBindTexture(00000de1,00000000) ret=00402e10
0029:trace:opengl:glBindTexture (3553, 0)
0029:Ret  opengl32.glBindTexture() retval=00000000 ret=00402e10 
...
0029:trace:opengl:glGenFramebuffers (1, 0xb00d1a0)
0029:Call ntdll.RtlAllocateHeap(00110000,00000008,00000004) ret=004033b7
0029:Ret  ntdll.RtlAllocateHeap() retval=0a9e7cc8 ret=004033b7
0029:Call opengl32.glGenTextures(00000001,0b00d1a8) ret=00405b99
0029:trace:opengl:glGenTextures (1, 0xb00d1a8)
0029:Ret  opengl32.glGenTextures() retval=00000000 ret=00405b99
0029:Call opengl32.glBindTexture(00000de1,00000021) ret=00405bc1
0029:trace:opengl:glBindTexture (3553, 33)
0029:Ret  opengl32.glBindTexture() retval=00000000 ret=00405bc1
0029:Call opengl32.glTexParameteri(00000de1,00002800,00002601) ret=00405bce
0029:trace:opengl:glTexParameteri (3553, 10240, 9729)
0029:Ret  opengl32.glTexParameteri() retval=00000000 ret=00405bce
0029:Call opengl32.glTexParameteri(00000de1,00002801,00002601) ret=00405bdb
0029:trace:opengl:glTexParameteri (3553, 10241, 9729)
0029:Ret  opengl32.glTexParameteri() retval=00000000 ret=00405bdb
0029:Call opengl32.glTexParameteri(00000de1,00008072,00008370) ret=00405be8
0029:trace:opengl:glTexParameteri (3553, 32882, 33648)
0029:Ret  opengl32.glTexParameteri() retval=00000000 ret=00405be8
0029:Call opengl32.glTexParameteri(00000de1,00002802,00008370) ret=00405bf5
0029:trace:opengl:glTexParameteri (3553, 10242, 33648)
0029:Ret  opengl32.glTexParameteri() retval=00000000 ret=00405bf5
0029:Call opengl32.glTexParameteri(00000de1,00002803,00008370) ret=00405c02
0029:trace:opengl:glTexParameteri (3553, 10243, 33648)
0029:Ret  opengl32.glTexParameteri() retval=00000000 ret=00405c02
0029:Call
opengl32.glTexImage2D(00000de1,00000000,0000881a,000000a0,0000005a,00000000,00001908,00001406,00000000)
ret=00405c40
0029:trace:opengl:glTexImage2D (3553, 0, 34842, 160, 90, 0, 6408, 5126, (nil))
0029:Ret  opengl32.glTexImage2D() retval=00000000 ret=00405c40
0029:Call ntdll.RtlAllocateHeap(00110000,00000008,00000018) ret=004033b7
0029:Ret  ntdll.RtlAllocateHeap() retval=0b00d210 ret=004033b7
0029:trace:opengl:glGenBuffers (1, 0xb00d224)
0029:trace:opengl:glBindBuffer (35051, 15)
0029:trace:opengl:glBufferData (35051, 57600, (nil), 35041)
0029:trace:opengl:glBindBuffer (35051, 0)
0029:trace:opengl:glBindFramebuffer (36160, 0)
0029:trace:opengl:glBindFramebuffer (36160, 17)
0029:trace:opengl:glFramebufferTexture2D (36160, 36064, 3553, 33, 0)
0029:trace:opengl:glDrawBuffers (1, 0xa9e7cc8)
0029:trace:opengl:glBindFramebuffer (36160, 0)
0029:trace:opengl:glCheckFramebufferStatus (36160)
...
0029:Call opengl32.glBindTexture(00000de1,00000021) ret=00402dd6
0029:trace:opengl:glBindTexture (3553, 33)
0029:Ret  opengl32.glBindTexture() retval=00000000 ret=00402dd6
0029:Call opengl32.glEnable(00000de1) ret=00402ddd
0029:trace:opengl:glEnable (3553)
0029:Ret  opengl32.glEnable() retval=00000002 ret=00402ddd
0029:trace:opengl:glGenerateMipmap (3553)
...
0029:trace:seh:raise_exception code=c0000005 flags=0 addr=0xf5c69874
ip=f5c69874 tid=0029
0029:trace:seh:raise_exception  info[0]=00000000
0029:trace:seh:raise_exception  info[1]=00000008
0029:trace:seh:raise_exception  eax=00000000 ebx=00000000 ecx=00000001
edx=0033d478 esi=003393a8 edi=00000000
0029:trace:seh:raise_exception  ebp=00000000 esp=00339370 cs=0023 ds=002b
es=002b fs=0063 gs=006b flags=00210246
0029:trace:seh:call_stack_handlers calling handler at 0x7bc9dc43 code=c0000005
flags=0
...
Unhandled exception: page fault on read access to 0x00000008 in 32-bit code
(0xf5c69874).
err:dbghelp_msc:pe_load_debug_directory Got a page fault while loading symbols
Register dump:
 CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
 EIP:f5c69874 ESP:00339370 EBP:00000000 EFLAGS:00210246(  R- --  I  Z- -P- )
 EAX:00000000 EBX:00000000 ECX:00000001 EDX:0033d478
 ESI:003393a8 EDI:00000000
...
Backtrace:
=>0 0xf5c69874 in libnvidia-glcore.so.340.24 (+0x1512874) (0x00000000)
  1 0xf5c6c3af in libnvidia-glcore.so.340.24 (+0x15153ae) (0xf32e0008)
  2 0xf5e33604 in libnvidia-glcore.so.340.24 (+0x16dc603) (0xf32e0008)
  3 0xf5e370d5 in libnvidia-glcore.so.340.24 (+0x16e00d4) (0x0033d478)
  4 0xf5ca3848 in libnvidia-glcore.so.340.24 (+0x154c847) (0x0033d5c8)
  5 0xf5ca3b4d in libnvidia-glcore.so.340.24 (+0x154cb4c) (0x0033d5c8)
  6 0xf5ca3bb7 in libnvidia-glcore.so.340.24 (+0x154cbb6) (0x00000000)
  7 0xf5e33cbf in libnvidia-glcore.so.340.24 (+0x16dccbe) (0xf347cc5c)
  8 0xf5e51fe9 in libnvidia-glcore.so.340.24 (+0x16fafe8) (0xf347cc5c)
  9 0xf5e6060b in libnvidia-glcore.so.340.24 (+0x170960a) (0xf32e0008)
  10 0xf5d25716 in libnvidia-glcore.so.340.24 (+0x15ce715) (0xf345d000)
  11 0xf5946506 in libnvidia-glcore.so.340.24 (+0x11ef505) (0xf347cc5c)
  12 0xf594afc2 in libnvidia-glcore.so.340.24 (+0x11f3fc1) (0x0033fc48)
  13 0xf3f1415f glGenerateMipmap+0x92(target=0xde1)
[/home/focht/projects/wine/wine.repo/src/dlls/opengl32/opengl_ext.c:3136] in
opengl32 (0x0033fc48)
  14 0x00402de4 in timeless (+0x22de3) (0x0033fc70)
  15 0x00404480 in timeless (+0x2447f) (0x0033fca0)
  16 0x004048a1 in timeless (+0x248a0) (0x0033fcf8)
0xf5c69874: movzwl    0x8(%ebp),%ebx
Modules:
Module    Address            Debug info    Name (109 modules)
PE      3e0000- 9ee0000    Export          timeless 
...
ELF    f4757000-f6cea000    Dwarf           libnvidia-glcore.so.340.24
ELF    f6cea000-f6cef000    Deferred        libnvidia-tls.so.340.24
...
--- snip ---

There were succeeding calls to 'glGenerateMipmap(GL_TEXTURE_2D)' before crash.

--- snip ---
OpenGL renderer string: GeForce GTX 850M/PCIe/SSE2
OpenGL core profile version string: 4.3.0 NVIDIA 340.24
OpenGL core profile shading language version string: 4.30 NVIDIA via Cg
compiler 
--- snip ---

Could be an upstream NVIDIA driver bug ...

$ sha1sum hg_the_timeless_final.zip 
639a673b57b05b0c2400aeb3d39f0f3401fd8893  hg_the_timeless_final.zip

$ du -sh hg_the_timeless_final.zip 
68K    hg_the_timeless_final.zip

$ wine --version
wine-1.7.24

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