[Mesa-dev] [Libva] vaPutSurface never returns

Emil Velikov emil.l.velikov at gmail.com
Fri Feb 19 16:04:01 UTC 2016


Was about to mention the same thing as Christian :-)

Vasilis, is there any reason why you're using vdpau + the vdpau to
vaapi adapter, as opposed to the gallium vaapi target directly ?

Mesa 11.0.x has the said target (toggle with --enable-va at configure
time), although there has been quite a few fixes from Christian,
Julien and others since then. As an alternative I'd suggest mesa
11.1.x series (or mesa 11.2.0-rc1 coming out later on today).

-Emil

On 19 February 2016 at 09:53, Christian König <deathsimple at vodafone.de> wrote:
> Questions for VDPAU should probably go to either the Mesa list or the VDPAU
> list, libva is completely unrelated to this.
>
> Well is it possible that you just locked up the GPU? Please take a look at
> /sys/kernel/debug/dri/0/radeon_fence_info and dmesg.
>
> Regards,
> Christian.
>
>
> Am 18.02.2016 um 23:43 schrieb Vasilis Liaskovitis:
>
> Hi,
>
> I have an application that renders by binding libva/vdpau surfaces onto GLX
> pixmaps.Playback works ok for a while, but than the application displays
> black frames after a few minutes of operation (always reproducible within
> 1-15 minutes usually).
>
> When this happens, gdb backtrace shows that the current call to
> vdpau_PutSurface (done from the application) never returns. Are there any
> obious reasons that would lead to vaPutSurface to never return (e.g. some
> deadlock in libva/vdpau?)
>
> Using vdpau driver on radeon.
>
> Backtrace of thread waiting in vaPutSurface():
>
> 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 at entry=0x2885500, cond=cond at entry=0x7fca1f776b40,
>         vector=vector at entry=0x0, count=count at entry=0x0) at xcb_conn.c:459
> #3  0x00007fca5316cadf in wait_for_reply (c=c at entry=0x2885500,
> request=31161,
>         e=e at 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 at entry=0x2650c90,
>          obj_output=obj_output at 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 at entry=0x2650c90,
>         surface=surface at entry=50331655, drawable=drawable at entry=71303307,
>         drawable_width=<optimized out>, drawable_height=720,
>             source_rect=source_rect at entry=0x7fca1f776f80,
>             target_rect=target_rect at entry=0x7fca1f776f90,
> flags=flags at 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/RZqmUkMY
>
> Using vdpau driver on radeon and:
>
> libX11 1.6.2
> libxcb 1.11 or 1.10
> mesa 11.0
>
>
> thank you for any help,
>
> - Vasilis
>
>
> _______________________________________________
> Libva mailing list
> Libva at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/libva
>
>
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>


More information about the mesa-dev mailing list