A few questions about VAVDA/VA-API

1,297 views
Skip to first unread message

kane

unread,
Aug 23, 2012, 3:09:53 AM8/23/12
to chromi...@chromium.org
Hi,
I have a few questions about VAVDA. VAVDA is the hardware video decode accelerator for Chrome on Linux and ChromeOS for Intel CPUs (Sandy Bridge and newer).
Can you answer the following questions?
Question 1:  Is VAVDA based upon VA-API? If so, once the video driver could support VA-API, then it can support VAVDA?
Question 2:  Is VAVDA accelerated decoding is supported on Linux now?
Question 3:  Is any other application can support VAVDA beside Chrome and ChromeOS?
Question 4:  I know ChromeOS can support VAVDA, if non-intel platform wants to run ChromeOS, VAVDA can work? or need to develop graphics drivers for ChromeOS?
Thanks in adv.

Ami Fischman

unread,
Aug 23, 2012, 1:14:03 PM8/23/12
to xinli...@gmail.com, chromi...@chromium.org
I have a few questions about VAVDA. VAVDA is the hardware video decode accelerator for Chrome on Linux and ChromeOS for Intel CPUs (Sandy Bridge and newer).

Correction: VAVDA is only hooked up on chromeos ATM, not Linux.
 
Question 1:  Is VAVDA based upon VA-API?

Yes.
 
If so, once the video driver could support VA-API, then it can support VAVDA?

In theory yes, but in reality it'll probably take some work to make it happen, since to date VAVDA's only been used with a couple of driver/HW combos.
 
Question 2:  Is VAVDA accelerated decoding is supported on Linux now?

No, and nobody's working on that ATM.  Bug 137247 will be updated/reopened if/when that changes, so you may want to star it to be notified.
 
Question 3:  Is any other application can support VAVDA beside Chrome and ChromeOS?

VAVDA is an implementation of the chromium-specific VDA interface to use VAAPI.  If you want to use VA-API but not chromium it's unclear to me what value you hope to extract from VAVDA.

Question 4:  I know ChromeOS can support VAVDA, if non-intel platform wants to run ChromeOS, VAVDA can work? or need to develop graphics drivers for ChromeOS?

VAVDA is useless on a platform without a VAAPI lib/driver/HW stack.  I'm not aware of any non-Intel platform that has a VAAPI stack available, so I doubt VAVDA will be useful to you on a non-Intel platform.
If you're targeting an ARM platform, it's much more likely that there is an OpenMAX IL stack available, in which case you might have better luck using/adapting OVDA, which is the VDA implementation for OMX.

Cheers,
-a 

Gianluca Padovani

unread,
Sep 19, 2012, 7:09:11 AM9/19/12
to chromi...@chromium.org, xinli...@gmail.com

On Thursday, August 23, 2012 7:14:03 PM UTC+2, Ami Fischman wrote:

Correction: VAVDA is only hooked up on chromeos ATM, not Linux.

With Chrome 21 in chrome://flags I read:

Enable hardware-accelerated video decode. Mac, Windows, Linux, Chrome OS
Enables hardware-accelerated video decode where available.

But on bugs 137247 I still see "Currently there are no plans to do this, but if/when that changes, this bug will be updated to reflect that change of plans."

So now It's possible enable HW acceleration on Linux? It's only a default problem? If I lunch chrome with "--enable-vaapi" or enable flags in chrome://flags I have the acceleration on Linux? 
I made some tests but I Didn't see any differences.

So what is the current status?

Thanks and bye
Gianluca

Ami Fischman

unread,
Sep 19, 2012, 12:51:03 PM9/19/12
to gpad...@gmail.com, chromi...@chromium.org, xinli...@gmail.com
Correction: VAVDA is only hooked up on chromeos ATM, not Linux.
With Chrome 21 in chrome://flags I read:
Enable hardware-accelerated video decode. Mac, Windows, Linux, Chrome OS

Yes, that's a lie.  Trust the bug.

So now It's possible enable HW acceleration on Linux?

No.
 
So what is the current status?

The bug is authoritative.

-a

Kane Li

unread,
Sep 19, 2012, 11:23:38 PM9/19/12
to fisc...@chromium.org, gpad...@gmail.com, chromi...@chromium.org
Hi Ami,
    I found Bug 137247 have updated. In 156677 the log message is "Hacks to make HW decode work on linux via libva."
    Does it means 156677 can support HW decode via libva on lucid? If so, Chrome uses VAAPI directly rather than VAVDA-VAAPI?
    Thanks a lot.

Ami Fischman

unread,
Sep 20, 2012, 12:59:48 AM9/20/12
to Kane Li, gpad...@gmail.com, chromi...@chromium.org
On Wed, Sep 19, 2012 at 8:23 PM, Kane Li <xinli...@gmail.com> wrote:
Hi Ami,
    I found Bug 137247 have updated. In 156677 the log message is "Hacks to make HW decode work on linux via libva."

Yes, I know, I wrote it :) 
 
    Does it means 156677 can support HW decode via libva on lucid?

Not really / sort of, assuming you build your own chrome and are comfortable hacking the libva & vdpau-driver upstreams.
 
If so, Chrome uses VAAPI directly rather than VAVDA-VAAPI?

No; all of chrome's use of VAAPI is through VAVDA (whose only purpose is to adapt VAAPI to chrome's architecture).
Possibly you meant to say VDPAU instead of VAVDA there; in that case the answer is that chrome uses VDPAU only through the vdpau-driver adapter to VAAPI (i.e. chrome -> VAVDA -> VAAPI -> VDPAU).

Cheers,
-a

Kane Li

unread,
Sep 20, 2012, 1:43:42 AM9/20/12
to Ami Fischman, gpad...@gmail.com, chromi...@chromium.org
    Does it means 156677 can support HW decode via libva on lucid?

Not really / sort of, assuming you build your own chrome and are comfortable hacking the libva & vdpau-driver upstreams.
The driver has already support vaapi directly, so I get the 156677 or later revisions, build with chromeos=1, then the Chrome can support HW decoder via libva on lucid? Should I run Chrome with ./chrome --enable-vaapi?

Ami Fischman

unread,
Sep 20, 2012, 2:00:29 AM9/20/12
to Kane Li, gpad...@gmail.com, chromi...@chromium.org
On Wed, Sep 19, 2012 at 10:43 PM, Kane Li <xinli...@gmail.com> wrote:
    Does it means 156677 can support HW decode via libva on lucid?
Not really / sort of, assuming you build your own chrome and are comfortable hacking the libva & vdpau-driver upstreams.
The driver has already support vaapi directly, so I get the 156677 or later revisions, build with chromeos=1, then the Chrome can support HW decoder via libva on lucid?

If you're not building your own drivers then the lucid vaapi drivers contain show-stopping bugs.
 
Should I run Chrome with ./chrome --enable-vaapi?

No.  For example, if you're building ToT there is no --enable-vaapi flag.  

What are you trying to do?

Cheers,
-a

Kane Li

unread,
Sep 20, 2012, 2:12:21 AM9/20/12
to Ami Fischman, gpad...@gmail.com, chromi...@chromium.org

If you're not building your own drivers then the lucid vaapi drivers contain show-stopping bugs.
 The HW and drivers is OK for VAAPI, that means everything is ready below VAAPI.
 
What are you trying to do?
 
I try to build a Chrome on Lucid, if the Chrome can support VAAPI, so we can use HW decoding accelerate when play videos in youtube.com or other websites.
Thanks.


Ami Fischman

unread,
Sep 20, 2012, 2:22:19 AM9/20/12
to Kane Li, gpad...@gmail.com, chromi...@chromium.org
If you're not building your own drivers then the lucid vaapi drivers contain show-stopping bugs.
 The HW and drivers is OK for VAAPI, that means everything is ready below VAAPI.

Good luck.

What are you trying to do?  
I try to build a Chrome on Lucid, if the Chrome can support VAAPI, so we can use HW decoding accelerate when play videos in youtube.com or other websites.

As I said, it's not ready yet.  If you're prepared to fire up a debugger semi-frequently and edit code, you might get some joy out of it, but at this point this is purely an aid for development for other platforms.

Cheers,
-a 

Kane Li

unread,
Sep 20, 2012, 2:50:55 AM9/20/12
to Ami Fischman, gpad...@gmail.com, chromi...@chromium.org
What are you trying to do?  
I try to build a Chrome on Lucid, if the Chrome can support VAAPI, so we can use HW decoding accelerate when play videos in youtube.com or other websites.

As I said, it's not ready yet.  If you're prepared to fire up a debugger semi-frequently and edit code, you might get some joy out of it, but at this point this is purely an aid for development for other platforms.
 I'm a little confused. You mean 156677 can't work at all via libva on linux, or it can work, but not work very well? Or should edit some code to make it work?
I just want to verify the HW decoding path can work or not.
Thank you again. 

Ami Fischman

unread,
Sep 20, 2012, 2:59:59 AM9/20/12
to Kane Li, gpad...@gmail.com, chromi...@chromium.org
I'm saying that I've had it working on a dev setup on my desktop, but that it's nowhere near ready for prime-time use, and that in my opinion it's a waste of time for anyone not interested in active chromium and vaapi development to touch it.
At this point a good litmus-test for whether you should be using this is whether you can get it to work for you.
IIUC your goals then the answer is no, it's not ready for your use yet.

Cheers,
-a

Gianluca Padovani

unread,
Sep 27, 2012, 4:04:29 AM9/27/12
to Ami Fischman, Kane Li, chromi...@chromium.org
Hi to all,
I could have a little budget to sponsorship this feature (HW decode on
Linux) on a particular HW. And I'm searching if someone is interested
and there is way to work on this feature and put it on the main
release of chromium.

I'm more interested in someone that live in Italy (for timezone and
management reasons) but I'm open to different solutions.

If someone is interested can contact me in private.

Thanks and bye
Gianluca

Gianluca Padovani

unread,
Dec 14, 2012, 5:06:13 AM12/14/12
to chromi...@chromium.org
Hi to all,
the status of this item 137247 is not changed bat in the last release on dev channel there is this item 11316045 "Add a libvpx video decoder to ClearKeyCdm and move the fake video decoder to its own class." , that it seems a bit related with the problem of HW acceleration of video on linux.

There is a chance to see this feature (HW acceleration) implemented in Chromium or Chrome for Linux?

Thank and bye
Gianluca

Ami Fischman

unread,
Dec 14, 2012, 12:20:18 PM12/14/12
to Gianluca Padovani, chromium-dev
On Fri, Dec 14, 2012 at 2:06 AM, Gianluca Padovani <gpad...@gmail.com> wrote:
it seems a bit related with the problem of HW acceleration of video on linux.

No, it is not.

-a
Reply all
Reply to author
Forward
0 new messages