[Mesa-dev] [PATCH v2 0/4] nouveau: add support for vaapi

Julien Isorce j.isorce at samsung.com
Fri Sep 4 09:43:47 PDT 2015


Currently nouveau does not support chunk decoding
which is required to support st/va.

The low level code is already there since it supports
vpau. But it is missing the possibility to feed
the nouveau_bo buffers gradually.
Resizing is already there too. But it also requires
to preserve the content after resizing.

The following patches refactor nouveau_vp3_bsp
and nvc0_decoder_bsp in order to implement
pipe_video_codec::begin_frame/decode_bitstream/end_frame.
So that decode_bitstream can be call multiple times
between each begin/end.

There is nothing really new in these patches.
All the low level code relative to nouveau was already there.
The patches are moving code in order to call nouveau_vp3_bsp and
nvc0_decoder_bsp multiple times between each begin/end frame. 

I made sure that vdpau was still working. Actually it was more than that,
without vdpau I think I would not have been able to do this refactoring.
I also compared that for one begin/end frame the nouveau_bo buffer contains
the same data for vdpau and vaapi. I dumped them for the same stream and
for several seconds. There were all the same.

Regression tests:
I made sure mpeg2, mpeg4, h264 and vc1 are still working with vdpau.

Issues:
I can observe some visual artificats with vaapi on mpeg4 and h264.
It looks 90% ok, color too. But you can feel that something is wrong.
Though it looks good on mpeg2 and vc1. And when dumping the full nouveau_bo
they are the same as those dumped while using vdpau.
I wonder if it could be a bug in st/va itself.

TODO: apply same logic for nv98 but I do not have the
material to test it.

https://bugs.freedesktop.org/show_bug.cgi?id=89969

Julien Isorce (4):
  nouveau: split nouveau_vp3_bsp in begin/next/end
  nvc0: add support for st/va
  nouveau: fix chunk decoding by updating number of slices
  build: enable st/va with nouveau driver

 src/gallium/drivers/nouveau/nouveau_vp3_video.h    |  17 +-
 .../drivers/nouveau/nouveau_vp3_video_bsp.c        | 170 ++++++----
 src/gallium/drivers/nouveau/nv50/nv98_video_bsp.c  |   5 +-
 src/gallium/drivers/nouveau/nvc0/nvc0_video.c      |  44 ++-
 src/gallium/drivers/nouveau/nvc0/nvc0_video.h      |  18 +-
 src/gallium/drivers/nouveau/nvc0/nvc0_video_bsp.c  | 365 ++++++++++++---------
 src/gallium/targets/va/Makefile.am                 |   2 +
 7 files changed, 377 insertions(+), 244 deletions(-)

-- 
1.9.1



More information about the mesa-dev mailing list