[Libva] concurrent VASurface updates
Dong Hoon Van Uytsel
dh.vanuytsel at gmail.com
Mon Feb 11 09:27:45 PST 2013
Hello,
I am attempting to get optimal rendering frame rate on the following set up:
ATI HD 6250 chipset 0x9804
fglrx 9.1.11 (Catalyst 13.1)
xvba-driver 0.8.0
libva-x11, libva 1.0.15
Xorg 1.12.4
I can do 1080p30 now, but I believe 1080p50 should be possible, given that two players can run simultaneously at 1080p25. The call vaPutSurface() appears to be blocking, and that may impose a limit on the frame rate. Therefore, I tried to spawn a worker thread per surface (using two surfaces) sharing the same VAContextID, and cooperating in a way that one thread can already start vaRenderSurface(), while the other is still busy with vaPutSurface().
Does this sound like a valid strategy?
However, my current implementation causes the assertion in xvba_decode.c:626
ASSERT(!obj_context->va_buffers_count);
to fail. I interpret this line as: one cannot have overlapping [vaBeginPicture(), vaEndPicture()] intervals. Is this correct?
Best regards
Dong Hoon
More information about the Libva
mailing list