Summary: | Upgrading mesa to 10.6 causes segfault in OpenGL applications with GeForce4 MX 440 / AGP 8X | ||
---|---|---|---|
Product: | Mesa | Reporter: | omelette <omelette> |
Component: | Drivers/DRI/nouveau | Assignee: | Nouveau Project <nouveau> |
Status: | RESOLVED FIXED | QA Contact: | Nouveau Project <nouveau> |
Severity: | major | ||
Priority: | medium | ||
Version: | 10.6 | ||
Hardware: | x86 (IA32) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: |
dmesg kernel log
full backtrace from a SDL2 test application initial patch |
Description
omelette
2015-08-05 20:58:15 UTC
Please supply information. (In reply to Ilia Mirkin from comment #1) > Please supply information. Which kind of information? Created attachment 117551 [details]
dmesg kernel log
(In reply to Ilia Mirkin from comment #3) > http://nouveau.freedesktop.org/wiki/Bugs/ Thank you, I attached the kernel log to the bug report Do applications other than mpv fail? What about glxinfo? Can you get backtraces from gdb? Errr, I meant to say "what about glxgears". However glxinfo could also prove instructive. UrbanTerror also fails and I assume other applications requiring hardware accelleration. >$ glxinfo >name of display: :0 >Segmentation fault (core dumped) >$ glxgears >Segmentation fault (core dumped) >Can you get backtraces from gdb? #0 0x951bec92 in ?? () from /usr/lib/xorg/modules/dri/nouveau_vieux_dri.so No symbol table info available. #1 0x951bed7e in ?? () from /usr/lib/xorg/modules/dri/nouveau_vieux_dri.so No symbol table info available. #2 0x95457134 in ?? () from /usr/lib/xorg/modules/dri/nouveau_vieux_dri.so No symbol table info available. #3 0x954539b2 in ?? () from /usr/lib/xorg/modules/dri/nouveau_vieux_dri.so No symbol table info available. #4 0x9544a2fc in ?? () from /usr/lib/xorg/modules/dri/nouveau_vieux_dri.so No symbol table info available. #5 0x95316bf3 in ?? () from /usr/lib/xorg/modules/dri/nouveau_vieux_dri.so No symbol table info available. #6 0x95316d5f in ?? () from /usr/lib/xorg/modules/dri/nouveau_vieux_dri.so No symbol table info available. #7 0x957ec4ae in ?? () from /usr/lib/libGL.so.1 No symbol table info available. #8 0x957c1578 in ?? () from /usr/lib/libGL.so.1 No symbol table info available. #9 0x957c183e in glXCreateContext () from /usr/lib/libGL.so.1 No symbol table info available. #10 0xb7f4bf3f in ?? () from /usr/lib/libSDL-1.2.so.0 No symbol table info available. #11 0xb7f51a01 in ?? () from /usr/lib/libSDL-1.2.so.0 No symbol table info available. #12 0xb7f51fbd in ?? () from /usr/lib/libSDL-1.2.so.0 No symbol table info available. #13 0xb7f3f3bf in SDL_SetVideoMode () from /usr/lib/libSDL-1.2.so.0 No symbol table info available. #14 0x0819cec4 in GLW_StartDriverAndSetMode () No symbol table info available. this is the backtrace I get when trying to run urbanterror Can you get debug symbols to make that backtrace a bit more interesting? Some distros package them separately. I'll have to recompile the packages with debug symbols, but I can do it if it's necessary Here's the backtrace from glxgears (gdb) bt full #0 0xb74eabc3 in _tnl_InvalidateState (ctx=0xb7fb7008, new_state=4294967295) at tnl/t_context.c:195 scale = {0, 0, 0.5} translate = {0, 0, 0.5} tnl = 0x80c1bd8 vp = 0x0 fp = 0x0 i = 2 #1 0xb74eac26 in _tnl_wakeup (ctx=0xb7fb7008) at tnl/t_context.c:205 No locals. #2 0xb7810015 in nv10_swtnl_init (ctx=0xb7fb7008) at nouveau_swtnl_t.c:341 tnl = 0x80c1bd8 #3 0xb780d0d5 in nv10_context_create (screen=0x8065b18, api=API_OPENGL_COMPAT, visual=0x80704a8, share_ctx=0x0) at nv10_context.c:487 nctx = 0xb7fb7008 ctx = 0xb7fb7008 celsius_class = 153 ret = 0 #4 0xb78000ed in nouveau_context_create (api=API_OPENGL_COMPAT, visual=0x80704a8, dri_ctx=0x805acd0, major_version=1, minor_version=0, flags=0, notify_reset=false, error=0xbffff4d8, share_ctx=0x0) at nouveau_context.c:76 dri_screen = 0x8065a20 screen = 0x8065b18 nctx = 0xb7c288cf <calloc+191> ctx = 0x80796b8 #5 0xb76acf37 in driCreateContextAttribs (screen=0x8065a20, api=0, config=0x80704a8, shared=0x0, num_attribs=0, attribs=0x0, error=0xbffff4d8, data=0x805abe8) at dri_util.c:433 context = 0x805acd0 modes = 0x80704a8 shareCtx = 0x0 mesa_api = API_OPENGL_COMPAT major_version = 1 minor_version = 0 flags = 0 notify_reset = false allowed_flags = 7 #6 0xb76ad025 in driCreateNewContextForAPI (screen=0x8065a20, api=0, config=0x80704a8, shared=0x0, data=0x805abe8) at dri_util.c:462 error = 96584 #7 0xb76ad061 in driCreateNewContext (screen=0x8065a20, config=0x80704a8, shared=0x0, data=0x805abe8) at dri_util.c:470 No locals. #8 0xb7f5792e in dri2_create_context (base=0x805ab58, config_base=0x8077788, shareList=0x0, renderType=32788) at dri2_glx.c:223 pcp = 0x805abe8 pcp_shared = 0xb7f1112c psc = 0x805ab58 config = 0x8077788 shared = 0x0 #9 0xb7f1d5cd in CreateContext (dpy=0x804e008, generic_id=225, config=0x8077788, shareList_user=0x0, allowDirect=1, code=3, renderType=32788, screen=0) at glxcmds.c:299 gc = 0x0 psc = 0x805ab58 shareList = 0x0 #10 0xb7f1d9ef in glXCreateContext (dpy=0x804e008, vis=0x805af98, shareList=0x0, allowDirect=1) at glxcmds.c:430 config = 0x8077788 renderType = 32788 psc = 0x805ab58 #11 0x0804b19c in ?? () No symbol table info available. #12 0x0804936e in ?? () No symbol table info available. #13 0xb7bcd637 in __libc_start_main () from /usr/lib/libc.so.6 No symbol table info available. #14 0x08049cf3 in ?? () No symbol table info available. Backtrace from urbanterror #0 0x95151bc3 in _tnl_InvalidateState (ctx=0x95a86008, new_state=4294967295) at tnl/t_context.c:195 scale = {0, 0, 0.5} translate = {0, 0, 0.5} tnl = 0x8cc1e48 vp = 0x0 fp = 0x0 i = 2 #1 0x95151c26 in _tnl_wakeup (ctx=0x95a86008) at tnl/t_context.c:205 No locals. #2 0x95477015 in nv10_swtnl_init (ctx=0x95a86008) at nouveau_swtnl_t.c:341 tnl = 0x8cc1e48 #3 0x954740d5 in nv10_context_create (screen=0x8c61998, api=API_OPENGL_COMPAT, visual=0x8c66d58, share_ctx=0x0) at nv10_context.c:487 nctx = 0x95a86008 ctx = 0x95a86008 celsius_class = 153 ret = 0 #4 0x954670ed in nouveau_context_create (api=API_OPENGL_COMPAT, visual=0x8c66d58, dri_ctx=0x8c64da0, major_version=1, minor_version=0, flags=0, notify_reset=false, error=0xbfffdc18, share_ctx=0x0) at nouveau_context.c:76 dri_screen = 0x8c64dc0 screen = 0x8c61998 nctx = 0xb7c068cf <calloc+191> ctx = 0x8c78ca8 #5 0x95313f37 in driCreateContextAttribs (screen=0x8c64dc0, api=0, config=0x8c66d58, shared=0x0, num_attribs=0, attribs=0x0, error=0xbfffdc18, data=0x8c5b610) at dri_util.c:433 context = 0x8c64da0 modes = 0x8c66d58 shareCtx = 0x0 mesa_api = API_OPENGL_COMPAT major_version = 1 minor_version = 0 flags = 0 notify_reset = false allowed_flags = 7 #6 0x95314025 in driCreateNewContextForAPI (screen=0x8c64dc0, api=0, config=0x8c66d58, shared=0x0, data=0x8c5b610) at dri_util.c:462 error = 107352 #7 0x95314061 in driCreateNewContext (screen=0x8c64dc0, config=0x8c66d58, shared=0x0, data=0x8c5b610) at dri_util.c:470 No locals. #8 0x957ed92e in dri2_create_context (base=0x8c30018, config_base=0x8c787a0, shareList=0x0, renderType=32788) at dri2_glx.c:223 pcp = 0x8c5b610 pcp_shared = 0x8c17590 psc = 0x8c30018 config = 0x8c787a0 shared = 0x0 #9 0x957b35cd in CreateContext (dpy=0x8c22508, generic_id=256, config=0x8c787a0, shareList_user=0x0, allowDirect=1, code=3, renderType=32788, screen=0) at glxcmds.c:299 gc = 0x0 psc = 0x8c30018 shareList = 0x0 #10 0x957b39ef in glXCreateContext (dpy=0x8c22508, vis=0x8c5ad00, shareList=0x0, allowDirect=1) at glxcmds.c:430 config = 0x8c787a0 renderType = 32788 psc = 0x8c30018 #11 0xb7f4bb5f in X11_GL_CreateContext (this=0x8c17100) at ./src/video/x11/SDL_x11gl.c:268 No locals. #12 0xb7f51bfd in X11_CreateWindow (this=this@entry=0x8c17100, screen=screen@entry=0x8c32e58, w=w@entry=640, h=480, bpp=32, flags=2147483650) at ./src/video/x11/SDL_x11video.c:1065 i = <optimized out> depth = 24 vis = <optimized out> vis_change = <optimized out> Amask = <optimized out> #13 0xb7f521f0 in X11_SetVideoMode (this=0x8c17100, current=0x8c32e58, width=640, height=480, bpp=32, flags=2147483650) at ./src/video/x11/SDL_x11video.c:1181 saved_flags = 0 #14 0xb7f3ee20 in SDL_SetVideoMode (width=640, height=480, bpp=32, flags=2147483650) at ./src/video/SDL_video.c:683 video = <optimized out> this = <optimized out> prev_mode = 0x8c32e58 mode = <optimized out> video_w = 640 video_h = 480 video_bpp = 32 is_opengl = <optimized out> #15 0x0819cec4 in GLW_StartDriverAndSetMode () No symbol table info available. Created attachment 117557 [details]
full backtrace from a SDL2 test application
Attached is a gdb backtrace from a SDL2 hello world application with all debug symbols
Can you do "p tnl->_WindowMap" and "p ctx->DrawBuffer" in gdb? I suspect this is due to commit 29e6c7dbc5bacf4f2b741333ac56469a00164e65, which added the code, but I don't see why it would be bad... maybe there's no DrawBuffer bound? (gdb) p tnl->_WindowMap $1 = {m = 0x821dde0, inv = 0x821de50, flags = 0, type = MATRIX_IDENTITY} (gdb) p ctx->DrawBuffer $2 = (struct gl_framebuffer *) 0x0 Created attachment 117570 [details] [review] initial patch This patch should help you get going. Not sure if it's the right thing though. (In reply to Ilia Mirkin from comment #16) > Created attachment 117570 [details] [review] [review] > initial patch > > This patch should help you get going. Not sure if it's the right thing > though. Alright, this works. Thank you very much. I pushed an alternate version of the patch which just avoids the call to tnl_wakeup entirely, it shouldn't be necessary. The patch should be cherry-picked into the next 10.6.x release. (In reply to Ilia Mirkin from comment #18) > I pushed an alternate version of the patch which just avoids the call to > tnl_wakeup entirely, it shouldn't be necessary. The patch should be > cherry-picked into the next 10.6.x release. Great, thank you again for patching this. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.