From: Florian M. <fl...@mi...> - 2010-03-03 11:15:06
|
On Tue, 2 Mar 2010 13:59:00 -0800 Jesse Barnes <jb...@vi...> wrote: > commit 529bf185fbcb9f7705b315a5106054ee25c1c77f > Author: Eric Anholt <er...@an...> > Date: Wed Feb 24 17:54:13 2010 -0800 > > In frame event handling, track drawable id instead of drawable > pointer. > > in your xf86-video-intel tree? > yes. before that, glxgears wouldn't ever start ... the error goes away if i restart the xserver... Am Dienstag, den 02.03.2010, 22:48 +0100 schrieb Florian Mickler: > On Tue, 2 Mar 2010 11:50:05 -0800 > Jesse Barnes <jb...@vi...> wrote: > > > So the server is hanging when the client tries to get buffers? Can you > > see what it's doing at the time? > > > > i'll try tomorrow... btw, no. it is glxgears which is hanging. everything else works as it should. and it is hanging on this _XReply (@428) here: @line 428 in mesa/src/glx/dri2.c: 416 XextCheckExtension(dpy, info, dri2ExtensionName, False); 417 418 LockDisplay(dpy); 419 GetReqExtra(DRI2GetBuffers, count * (4 * 2), req); 420 req->reqType = info->codes->major_opcode; 421 req->dri2ReqType = X_DRI2GetBuffersWithFormat; 422 req->drawable = drawable; 423 req->count = count; 424 p = (CARD32 *) & req[1]; 425 for (i = 0; i < (count * 2); i++) 426 p[i] = attachments[i]; 427 428 if (!_XReply(dpy, (xReply *) & rep, 0, xFalse)) { 429 UnlockDisplay(dpy); 430 SyncHandle(); 431 return NULL; 432 } 433 434 *width = rep.width; 435 *height = rep.height; it's not looping... i verified with strace that glxgears is blocking on that poll() here... I tried to follow the program flow up into that.. but besides me thinking that this _XReply is surfacing in the xserver's dispatch.c i'm not really advancing here ;) where does this request get handled? when does _XReply return? cheers, Flo p.s.: if the screen is idle and get's turned off, glxgears is running fine... (started via ssh... i see the framerate reporting...) p.p.s.: the whole backtrace when glxgears is hanging: (gdb) bt full #0 0x00007f3aef5ea10f in poll () from /lib/libc.so.6 No symbol table info available. #1 0x00007f3aee19fa32 in _xcb_conn_wait () from /usr/lib/libxcb.so.1 No symbol table info available. #2 0x00007f3aee1a15e1 in xcb_wait_for_reply () from /usr/lib/libxcb.so.1 No symbol table info available. #3 0x00007f3aef2460be in _XReply () from /usr/lib/libX11.so.6 No symbol table info available. #4 0x00007f3aefb44f76 in DRI2GetBuffersWithFormat (dpy=0x234c010, drawable=<value optimized out>, width=0x235f3b4, height=0x235f3b8, attachments=0x7fffc5ac6450, count=2, outCount=0x7fffc5ac648c) at dri2.c:428 info = 0x2357960 rep = {type = 112 'p', pad1 = 100 'd', sequenceNumber = 50604, length = 32767, width = 3984539715, height = 32570, count = 0, pad2 = 0, pad3 = 37116448, pad4 = 0} buffers = <value optimized out> repBuffer = {attachment = 41009200, name = 0, pitch = 3985030468, cpp = 32570, flags = 2097152} i = <value optimized out> #5 0x00007f3aefb43ca8 in dri2GetBuffersWithFormat ( driDrawable=<value optimized out>, width=0x235f3b4, height=0xffffffffffffffff, attachments=0x234d6d8, count=5277, out_count=0x7fffc5ac648c, loaderPrivate=0x235f2c0) at dri2_glx.c:435 ---Type <return> to continue, or q <return> to quit--- pdraw = <value optimized out> buffers = <value optimized out> #6 0x00007f3aed6de927 in intel_update_renderbuffers ( context=<value optimized out>, drawable=0x235f380) at intel_context.c:252 rb = <value optimized out> region = <value optimized out> depth_region = <value optimized out> intel = 0x2365a20 front_rb = <value optimized out> back_rb = 0x3 depth_rb = 0x26b9340 stencil_rb = 0x26b9340 buffers = <value optimized out> screen = 0x235cf20 i = 3 count = <value optimized out> attachments = {1, 32, 9, 32, 13, 0, 0, 0, 655360, 0} region_name = <value optimized out> __func__ = "intel_update_renderbuffers" #7 0x00007f3aed6decef in intel_prepare_render (intel=0x2365a20) at intel_context.c:395 driContext = 0x2361d70 drawable = 0x235f380 ---Type <return> to continue, or q <return> to quit--- #8 0x00007f3aed70d3ca in brw_try_draw_prims (ctx=0x2365a20, arrays=0x23b54a8, prim=0x7fffc5ac65a0, nr_prims=1, ib=0x0, index_bounds_valid=<value optimized out>, min_index=0, max_index=3) at brw_draw.c:340 retval = <value optimized out> warn = <value optimized out> first_time = <value optimized out> i = <value optimized out> intel = 0x7fffc5ac6200 __FUNCTION__ = "brw_try_draw_prims" warned = 0 '\000' #9 brw_draw_prims (ctx=0x2365a20, arrays=0x23b54a8, prim=0x7fffc5ac65a0, nr_prims=1, ib=0x0, index_bounds_valid=<value optimized out>, min_index=0, max_index=3) at brw_draw.c:441 No locals. #10 0x00007f3aed7c91bf in vbo_exec_DrawArrays (mode=6, start=0, count=4) at vbo/vbo_exec_array.c:524 ctx = 0x2365a20 prim = {{mode = 6, indexed = 0, begin = 1, end = 1, weak = 0, pad = 0, start = 0, count = 4, basevertex = 0}} __FUNCTION__ = "vbo_exec_DrawArrays" #11 0x00007f3aed847910 in _mesa_meta_Clear (ctx=0x2365a20, buffers=0) at drivers/common/meta.c:1461 ---Type <return> to continue, or q <return> to quit--- clear = 0x26b47e4 verts = {{x = 0, y = 0, z = -1, r = 0, g = 0, b = 0, a = 0}, {x = 300, y = 0, z = -1, r = 0, g = 0, b = 0, a = 0}, {x = 300, y = 300, z = -1, r = 0, g = 0, b = 0, a = 0}, {x = 0, y = 300, z = -1, r = 0, g = 0, b = 0, a = 0}} metaSave = 4294967003 __PRETTY_FUNCTION__ = "_mesa_meta_Clear" #12 0x00007f3aed6dd8ac in intelClear (ctx=0x2365a20, mask=<value optimized out>) at intel_clear.c:182 intel = 0x7fffc5ac6200 colorMask = <value optimized out> tri_mask = 18 blit_mask = 0 swrast_mask = 0 fb = 0x26b8e20 i = 0 #13 0x0000000000402be6 in draw () No symbol table info available. #14 0x000000000040360b in main () No symbol table info available. |