[Libva] vaCreateSurfaceGLX now works with psb (IEGD 10.3) + Xorg 1.6.4

Adam Strzelecki ono at java.pl
Thu Feb 18 12:26:53 PST 2010


> Thanks for testing. BTW, if FBO works with your change then the plain vaCopySurfaceGLX() function should work too.

Well, vaCopySurfaceGLX blows up Xorg actually here (both "./vaapi_h264 --glx --vaapi-glx-use-copy" or "./vaapi_h264 --getimage pixmap" cause SIGSEGV).
Both are trying to render vaPutSurface onto Pixmap, and Xorg catch SEGV on vaPutSurface VA driver code.

When using bind however "./vaapi_h264 --glx --no-vaapi-glx-use-copy" I can see nice picture on the screen :> So I presume it works, at lease in hwdemos.

> If so, I'd be interested to know whether this makes a difference, performance-wise, in MPlayer for example.

First of all it doesn't work out of the box at all as I get vaCopySurfaceGLX (1st case) vaAssociateSurfaceGLX (2nd case) "flag not supported" error, because libva checks:

>     /* XXX: only support VA_FRAME_PICTURE */
>     if (flags != VA_FRAME_PICTURE)
>         return VA_STATUS_ERROR_FLAG_NOT_SUPPORTED;

And when I use "mplayer -vo vaapi:gl" or even "mplayer -vo vaapi:gl:deint=0" vo_vaapi.c still passes VA_SRC_BT709 or VA_SRC_BT601 to flags.
When I fix va_vaapi.c to pass only VA_FRAME_PICTURE /* 0x0 */ I get:

> e.g.
> mplayer -vo vaapi:gl -va vaapi

(1) Xorg crash as above

> vs.
> mplayer -vo vaapi:gl:bind -va vaapi

(2) No crash but no image also -> "nice" black rectangle.... argh!

Do you have any idea why "./vaapi_h264 --glx --vaapi-glx-use-copy" renders actually something but "mplayer -vo vaapi:gl:bind -va vaapi" shows just black rectangle???

Cheers,
-- 
Adam



More information about the Libva mailing list