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

Gwenole Beauchesne gbeauchesne at splitted-desktop.com
Sat Apr 3 23:52:53 PDT 2010


Hi,

Le 18 févr. 10 à 21:26, Adam Strzelecki a écrit :

>> 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.

I have uploaded new 0.31.0*+sds12 packages and patches to fix the  
default TFP + FBO implementation. This now requires GLX 1.3. Well, it  
always required GLX 1.3 but I never checked for it correctly either. I  
have not tested on GMA500 or G45 but this matches what I have updated  
for the NVIDIA backend too and fixes rendering for lightspark.

BTW, I need to create another GLX context to preserve caller's state  
correctly but I don't know how much does this cost on GMA500. This is  
free on my NVIDIA platform and this new version is even slightly  
faster. It also uses less texture memory.

>> 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;

Yes, this check was stupid since we can't assume anything about what  
vaPutSurface() supports, so  I removed it. ;-)

>> 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???

There was a bug in the way I used TFP and IEGD probably didn't like  
it. Please try the new packages, this might help. At least, this is  
now the most correct code.

Regards,
Gwenole.


More information about the Libva mailing list