[Libva] [libva-intel-driver PATCH 03/10] Add support for P010 in vaPutSurface()

Xiang, Haihao haihao.xiang at intel.com
Tue Dec 8 20:09:25 PST 2015


On Mon, 2015-12-07 at 17:33 +0000, Emil Velikov wrote:
> On 6 December 2015 at 16:38, Xiang, Haihao <haihao.xiang at intel.com>
> wrote:
> > > -----Original Message-----
> > > From: Emil Velikov [mailto:emil.l.velikov at gmail.com]
> > > Sent: Friday, December 4, 2015 10:12 PM
> > > To: Xiang, Haihao
> > > Cc: libva at lists.freedesktop.org
> > > Subject: Re: [Libva] [libva-intel-driver PATCH 03/10] Add support
> > > for P010 in
> > > vaPutSurface()
> > > 
> > > On 3 December 2015 at 18:13, Xiang, Haihao <haihao.xiang at intel.co
> > > m> wrote:
> > > > Currently it converts P010 to RBGA32
> > > > 
> > > > v2: P010 has interleaved UV planar (Peng)
> > > Typo in RBGA32 ? Don't think I've seen such format before.
> > 
> > Yes, it is a typo, thanks for catching it.
> > 
> > > 
> > > Also the commit message explain say "why" we need this. The
> > > current "there
> > > is no native support we emulate things" does not sound at all
> > > appealing.
> > 
> > vaPutSurface() is only implemented in a X window system.
> Hmm in this case does things just crash when one tries to use
> vaPutSurface on Android ? 

VA_STATUS_ERROR_UNIMPLEMENTED is returned if someone tries to use
vaPutsurface() with libva-intel-driver on Android. AFAIK, user needn't
vaPutsurface() if he/she wants to try VAAPI on Android now.

> How are the in-tree tests suppose to work in
> this case ?

pvr driver implements vaPutSurface() on Android. 

> 
> > The drawable to vaPutSurface() is in RGBA32, so we convert P010 to
> > RGBA32. We can add P010 to R10B10G10A2 once the drawable is in
> > R10G10B10A2.
> > 
> The header (va_x11.h) does not say anything about this limitation
> (The
> drawable to vaPutSurface() is in RGBA32). Is that intentional ?

No, vaPutSurface() doesn't have such limitation. We will add the
support for R10G10B10A2 in vaPutsurface() if we can get a R10G10B10A2 render target.

> 
> Afaict vaCreateSurface _does_ accept various formats, so I'm
> wondering
> how are things going to work if one requests/creates a non RGBA32 one
> ?

A X drawable isn't a VA surface, you can't use vaCreateSurface() to
create a drawable.



> Thanks
> Emil


More information about the Libva mailing list