For more information, join the team subscribe to the mailing list 
at the bottom of the Launchpad page 

Please join this team if you are new by clicking on the "Join 
Team" link at the right of the Launchpad page. It's important to 
have as many users in the community as possible to request for 
appropriate support.

Wednesday, 14 December 2011

Video acceleration for Optimus laptops -- what is the status?

Eric Appleman has taken some time to detail the situation of having
VDPAU acceleration on Optimus laptops. VDPAU is a method to use the
computing power of a GPU card to produce high-quality video and audio
while offloading the main CPU from the task. Eric has been making
great contributions in this area for Optimus configurations. Here are
the details:

There are 2 primary means of using VDPAU. Bumblebee+Xpra and
Bumblebee+Windump. Both methods have pros and cons: Windump is fast,
maintains v-sync if you use a compositor, but has rather tricky window
management. On the other side, Xpra is has a good window management,
but screen updates can be disappointing.

One of the newer things that Eric has been looking into is VAAPI and
VDPAU while using the open-source Nouveau driver. The media player VLC
supports H264 VAAPI and mplayer/mplayer2 can decode VP8 over VDPAU,
but it requires patches to both mplayer and the Mesa
libraries. Windump or Xpra would still be needed in this

Meanwhile, Dave Airlie's PRIME/DriverScreen developments could be soon
incorporated into most Linux distributions. In theory, the code should
be ready by early 2012 and in most distributions as early as Fall

Between now and then, Eric will be looking into adding proper window
management to Windump, although it looks like a difficult job. This
would require loading a second X server, instead of attaching virtual
screens to drivers on a single X server, which is the preferred option
for bumblebee and ironhide.

VDPAU is one of the methods to have video and audio GPU-acceleration
in Linux, although it's still largely restricted to the Nvidia
proprietary drivers. Although some other open-source drivers can use
VDPAU, like the Radeon Gallium drivers through XvBA backend and
experimental trees like Emeric's Nouveau VP8 acceleration, the
environment is still incomplete and lacking big important features for
many hardware configurations.

For Nouveau, VDPAU on Nvidia cards (NV50/NVC0) and Optimus support are
two separate yet eventually convergent goals. The feature matrix for
Nouveau is still showing a 'to-do/to-finish' in 'hardware accelerated
video decoding' [1].

So, in the immediate future, VAAPI on Nouveau could be a primary
method of acceleration until VDPAU lands. The benefits of either
method may be short-lived for H264 fans. This is because there is an
ongoing transition from 8-bit compression to 10-bit compression. While
most consumer-level video cards can support hardware-accelerated 8-bit
decoding, this is not the case for 10-bit decoding at the moment, and
this situation could not change for at least a few years.

So where does this leave VDPAU with the Nvidia blob on Optimus
laptops? Aaron Plattner, Nvidia's Linux driver guy, says he is
encouraged by Dave's Xserver overhaul and would be willing to support
it. This is easier said than done, since it requires for Linux
distributions to ship with a cutting-edge X stack and kernel that
would support the new code.

Ultimately, for both Nouveau and the Nvidia driver, the new
development efforts under the Wayland framework are still a big
unknown, and it's still early to envision how it will affect Optimus
and VDPAU.

Thanks to Eric Appleman for the information on the hybrid-graphics
mailing list.