[Mesa-dev] [PATCH v3 0/4] nouveau: add support for vaapi
Julien Isorce
j.isorce at samsung.com
Mon Sep 7 05:15:01 PDT 2015
v3:
Indent to 3 spaces.
Move "unsigned bsp_size" and unsigned int nb_slices" in
commits that use it.
v2:
Squash some commits as requested.
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 | 22 +++-
.../drivers/nouveau/nouveau_vp3_video_bsp.c | 106 ++++++++++------
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 | 141 ++++++++++++++-------
src/gallium/targets/va/Makefile.am | 2 +
7 files changed, 240 insertions(+), 98 deletions(-)
--
1.9.1
More information about the mesa-dev
mailing list