[Intel-gfx] Problem using an Mesa based App with recent xorg/mesa/xf86-video-intel (loop?)

Florian Mickler florian at mickler.org
Wed Mar 3 03:14:49 PST 2010


On Tue, 2 Mar 2010 13:59:00 -0800
Jesse Barnes <jbarnes at virtuousgeek.org> wrote:
> commit 529bf185fbcb9f7705b315a5106054ee25c1c77f
> Author: Eric Anholt <eric at 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 <jbarnes at 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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.x.org/archives/xorg-devel/attachments/20100303/985ff3ec/attachment-0001.htm>


More information about the xorg-devel mailing list