[Libva] [PATCH 0/2] intel-driver: add support for vaPutImage()

Xiang, Haihao haihao.xiang at intel.com
Mon Sep 5 18:26:00 PDT 2011


Hi, Gwenole

There is an implementation of vaPutImage on vaapi-ext branch, the
implementation directly uses some internal post processing functions, it
supports pixel format conversion between NV12, YV12 and I420. Currently
it doesn't work on CTG due to lack of GPU kernels on CTG. Could you try
this implementation? 

I also have implemented vaGetImage with this way. Testing with VLC-vaapi
shows that the performance on Sandybridge is good (It has the same CPU
usage with mplayer-vaapi when playing a 1080p video) however the
performance on Ironlake is bad. So I don't push the implementation of
vaGetImage currently.

The render issue has been fixed on vaapi-ext branch as well.

Thanks
Haihao

> Hi,
> 
> This patch series implements vaPutImage() on Intel Gen gfx. It's necessary for
> GStreamer vaapiconvert functionality. i.e. upload YUV pixels to VA surfaces.
> The second patch is specifically necessary for cases where there is no VA context
> created for video decoding. That is, we use VA-API as a raw replacement to Xv.
> 
> Tested on CTG & SNB along with VA context created for decoding (mpeg2 or h264),
> or without any VA context at all. i.e. test matrix is { CTG, SNB } x { no-VA context,
> VA context + mpeg2 decoding first, VA context + h264 decoding first }.
> 
> Another test includes gst-launch videotestsrc ! vaapiconvert direct-rendering=0 ! vaapisink
> on SNB. vaDeriveImage() needs to be fixed next.
> 
> Note: this does not allocate tiled surfaces on SNB.
> 
> Thanks,
> Gwenole.
> 
> Gwenole Beauchesne (2):
>   Add vaPutImage() implementation.
>   Use VA surface format to determine interleaved_uv.
> 
>  src/i965_drv_video.c |  218 ++++++++++++++++++++++++++++++++++++++++++++++----
>  src/i965_render.c    |   25 ++++---
>  2 files changed, 217 insertions(+), 26 deletions(-)
> 




More information about the Libva mailing list