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 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev