Bug 93412 - hang in xcb_wait_for_reply / vl_dri2_get_flush_reply
Summary: hang in xcb_wait_for_reply / vl_dri2_get_flush_reply
Status: RESOLVED NOTOURBUG
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/Gallium/radeonsi (show other bugs)
Version: 11.0
Hardware: Other All
: medium normal
Assignee: Default DRI bug account
QA Contact: Default DRI bug account
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-12-16 21:26 UTC by Vasilis LIaskovitis
Modified: 2015-12-17 06:50 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments

Description Vasilis LIaskovitis 2015-12-16 21:26:48 UTC
Application that renders using libva/vdpau/opengl hangs after a few minutes of operation (always reproducible within 1-15 minutes usually).
 
I see a hang in xcb_wait_for_reply() for request #31161:
 
Possibly relevant part of xtrace:
000:>:4d8a:32: Reply to SwapBuffers: swap_hi=0 swap_lo=31161
000:>:4d8b:32: Reply to GetInputFocus: revert-to=Parent(0x02) focus=0x02e000e0
000:<:24d8c: 20: DRI2-Request(155,7): GetBuffersWithFormat drawable=0x04400006 attachments={attachment=BackLeft(0x00000001) format=0x00000020};
000:>:24d8c: Event DRI2-BufferSwapComplete(102) drawable=0x00000002 ust_hi=71303174 ust_lo=0 msc_hi=1858207713 msc_lo=0 sbc_hi=109393 sbc_lo=31161
 
And:
000:<:31161:  4: Request(43): GetInputFocus  
000:>:31161: Event DRI2-InvalidateBuffers(103) drawable=0x04400006
 
Backtrace of thread waiting in xcb_wait_for_reply():
 
Thread 8 (Thread 0x7fca1f778700 (LWP 3580)):
#0  0x00007fca55a3e12d in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007fca5316b262 in poll (__timeout=-1, __nfds=1, __fds=0x7fca1f776a20) at
    /usr/include/x86_64-linux-gnu/bits/poll2.h:46
#2  _xcb_conn_wait (c=c@entry=0x2885500, cond=cond@entry=0x7fca1f776b40,
        vector=vector@entry=0x0, count=count@entry=0x0) at xcb_conn.c:459
#3  0x00007fca5316cadf in wait_for_reply (c=c@entry=0x2885500, request=31161,
        e=e@entry=0x0) at xcb_in.c:491
#4  0x00007fca5316cbf2 in xcb_wait_for_reply (c=0x2885500, request=31161, e=0x0)
at xcb_in.c:521
#5  0x00007fca419b8004 in vl_dri2_get_flush_reply (scrn=0x2653600) at
../../../../../src/gallium/auxiliary/vl/vl_winsys_dri.c:110
#6  0x00007fca419b8101 in vl_dri2_destroy_drawable (scrn=0x2653600) at
../../../../../src/gallium/auxiliary/vl/vl_winsys_dri.c:153
#7  0x00007fca419b8185 in vl_dri2_set_drawable (scrn=0x2653600,
        drawable=71303307) at
../../../../../src/gallium/auxiliary/vl/vl_winsys_dri.c:176
#8  0x00007fca419b82c8 in vl_dri2_screen_texture_from_drawable
(vscreen=0x2653600, drawable=0x440008b) at
../../../../../src/gallium/auxiliary/vl/vl_winsys_dri.c:193
#9  0x00007fca419b61ab in vlVdpPresentationQueueDisplay
(presentation_queue=<optimized out>, surface=5, clip_width=1280,
 clip_height=720, earliest_presentation_time=0)
        at ../../../../../../src/gallium/state_trackers/vdpau/presentation.c:234
#10 0x00007fca423ca6a3 in flip_surface_unlocked
        (driver_data=driver_data@entry=0x2650c90,
         obj_output=obj_output@entry=0x291a2b0) at vdpau_video_x11.c:583
#11 0x00007fca423cb2e1 in queue_surface_unlocked (obj_surface=<optimized out>,
        obj_output=0x291a2b0, driver_data=0x2650c90) at vdpau_video_x11.c:610
#12 put_surface_unlocked (flags=32, target_rect=0x7fca1f776f90,
        source_rect=0x7fca1f776f80, obj_output=0x291a2b0, obj_surface=0x2919bf0,
        driver_data=0x2650c90) at vdpau_video_x11.c:689
#13 put_surface (driver_data=driver_data@entry=0x2650c90,
        surface=surface@entry=50331655, drawable=drawable@entry=71303307,
        drawable_width=<optimized out>, drawable_height=720,
            source_rect=source_rect@entry=0x7fca1f776f80,
            target_rect=target_rect@entry=0x7fca1f776f90, flags=flags@entry=32)
at vdpau_video_x11.c:755
#14 0x00007fca423cb59c in vdpau_PutSurface (ctx=<optimized out>,
        surface=50331655, draw=0x440008b, srcx=<optimized out>, srcy=<optimized
        out>, srcw=<optimized out>, srch=720, destx=0, desty=0,
            destw=1280, desth=720, cliprects=0x0, number_cliprects=0, flags=32)
at vdpau_video_x11.c:808
#15 0x000000000040eed2 in on_client_draw (glsink=<optimized out>, buf=<optimized
        out>, data=0x626d40 <video>) at video.c:619


Full backtrace at: http://pastebin.com/rQCJm64C

Using:

libX11 1.6.2
libxcb 1.10 or 1.11
mesa 11.0 (11.0~git1508070730.42d283~gd~t from oibaf/graphics-drivers ppa)
xserver-xorg-video-radeon 1:7.5.99+git1508070731.3791fc~gd~t (same ppa)
Comment 1 Vasilis LIaskovitis 2015-12-16 21:34:22 UTC
I also made same bug  under xcb/protocol https://bugs.freedesktop.org/show_bug.cgi?id=93414 , apologies for this, I am not sure where to file this problem. I will close one of the two bugs when I am pointed to the most appropriate component of the two.
Comment 2 Michel Dänzer 2015-12-17 06:50:59 UTC
I think it looks more likely to be app/libX11/XCB related so far, so let's continue there for now.


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.