On Tue, 2 Mar 2010 13:59:00 -0800 Jesse Barnes <jbar...@virtuousgeek.org> wrote: > commit 529bf185fbcb9f7705b315a5106054ee25c1c77f > Author: Eric Anholt <e...@anholt.net> > 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 <jbar...@virtuousgeek.org> 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.Am Dienstag, den 02.03.2010, 22:48 +0100 schrieb Florian Mickler:
On Tue, 2 Mar 2010 11:50:05 -0800 Jesse Barnes <jbar...@virtuousgeek.org> 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 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...
but i don't know what i should make of this...
cheers,
Flo
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.
------------------------------------------------------------------------------ Download Intel® Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev
_______________________________________________ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev