[FFmpeg-devel] [PATCH] lavc/vc1dec: add multi-slice decoding support for hwaccel.

Mark Thompson sw at jkqxz.net
Tue Nov 15 00:28:54 EET 2016


On 14/11/16 21:31, Mark Thompson wrote:
> On 14/11/16 00:57, Jun Zhao wrote:
>> On 2016/11/11 16:29, Hendrik Leppkes wrote:
>>> On Fri, Nov 11, 2016 at 9:09 AM, Jun Zhao <mypopydev at gmail.com> wrote:
>>>>
>>>
>>> Do you have a sample file for this case? AFAIK all vc1 files I ever
>>> saw worked with the DXVA2 hwaccel before, just want to make sure they
>>> are not getting broken.
>>>
>>> - Hendrik
>>
>> We used the file fate-suite/vc1/SA10091.vc1, you can get the files with
>> the command:
>> rsync -aL rsync://fate-suite.ffmpeg.org:/fate-suite/ fate-suite.
> 
> Can you describe your test setup(s) a bit more?
> 
> I had a go at testing this with VAAPI.
> 
> With the i965 driver on Skylake GT2, fate-vc1_sa10091 fails cleanly without the patch, but gives a GPU hang with it.
> 
> With the mesa driver on Polaris 11, fate-vc1_sa10091 passes without the patch, but fails with it.
> 
> I haven't really looked at VC-1 decode much before, so I'm not sure which of these tests should pass.  Still, the GPU hang is certainly bad (and possibly the fault of the driver, but it would be helpful to be sure of that if we want to apply this sort of change).
> 
> More detailed results below.
> 
> Thanks,
> 
> - Mark
> 
> 
> 
> Without patch, i965 + Skylake GT2:
> 
> $ make HWACCEL='vaapi -vaapi_device /dev/dri/renderD128 -hwaccel_output_format yuv420p' fate-vc1
> TEST    vc1_sa00040
> TEST    vc1_sa00050
> TEST    vc1_sa10091
> --- /home/mrt/video/ffmpeg/vaapi/tests/ref/fate/vc1_sa10091     2016-05-09 17:55:19.599803161 +0100
> +++ tests/data/fate/vc1_sa10091 2016-11-14 21:18:10.550918661 +0000
> [...]
> Test vc1_sa10091 failed. Look at tests/data/fate/vc1_sa10091.err for details.
> /home/mrt/video/ffmpeg/vaapi/tests/Makefile:218: recipe for target 'fate-vc1_sa10091' failed
> make: *** [fate-vc1_sa10091] Error 1
> 
> 
> Without patch, mesa + Polaris 11:
> 
> $ LIBVA_DRIVER_NAME=radeonsi make HWACCEL='vaapi -vaapi_device /dev/dri/renderD129 -hwaccel_output_format yuv420p' fate-vc1
> TEST    vc1_sa00040
> TEST    vc1_sa00050
> TEST    vc1_sa10091
> TEST    vc1_sa10143
> --- /home/mrt/video/ffmpeg/vaapi/tests/ref/fate/vc1_sa10143     2016-05-09 17:55:19.599803161 +0100
> +++ tests/data/fate/vc1_sa10143 2016-11-14 21:17:03.712198274 +0000
> [...]
> Test vc1_sa10143 failed. Look at tests/data/fate/vc1_sa10143.err for details.
> /home/mrt/video/ffmpeg/vaapi/tests/Makefile:218: recipe for target 'fate-vc1_sa10143' failed
> make: *** [fate-vc1_sa10143] Error 1
> 
> 
> With patch, i965 + Skylake GT2:
> 
> $ make HWACCEL='vaapi -vaapi_device /dev/dri/renderD128 -hwaccel_output_format yuv420p' fate-vc1
> TEST    vc1_sa00040
> TEST    vc1_sa00050
> TEST    vc1_sa10091
> ^C^C/home/mrt/video/ffmpeg/vaapi/tests/Makefile:218: recipe for target 'fate-vc1_sa10091' failed
> make: *** [fate-vc1_sa10091] Interrupt
> 
> dmesg output:
> [1300652.142872] [drm] stuck on bsd ring
> [1300652.143138] [drm] GPU HANG: ecode 9:2:0xcbfcffe7, in ffmpeg [31688], reason: Engine(s) hung, action: reset
> [1300652.144959] drm/i915: Resetting chip after gpu hang
> [1300654.130765] [drm] RC6 on
> [1300660.106392] [drm] stuck on bsd ring
> [1300660.106927] [drm] GPU HANG: ecode 9:2:0xa8dfbffd, reason: Engine(s) hung, action: reset
> [1300660.107078] [drm:i915_set_reset_status [i915]] *ERROR* gpu hanging too fast, banning!
> [1300660.109931] drm/i915: Resetting chip after gpu hang
> [1300661.142622] [drm] RC6 on
> 
> 
> With patch, mesa + Polaris 11:
> 
> $ LIBVA_DRIVER_NAME=radeonsi make HWACCEL='vaapi -vaapi_device /dev/dri/renderD129 -hwaccel_output_format yuv420p' fate-vc1
> TEST    vc1_sa00040
> TEST    vc1_sa00050
> TEST    vc1_sa10091
> --- /home/mrt/video/ffmpeg/vaapi/tests/ref/fate/vc1_sa10091     2016-05-09 17:55:19.599803161 +0100
> +++ tests/data/fate/vc1_sa10091 2016-11-14 21:20:24.324357577 +0000
> [...]
> Test vc1_sa10091 failed. Look at tests/data/fate/vc1_sa10091.err for details.
> /home/mrt/video/ffmpeg/vaapi/tests/Makefile:218: recipe for target 'fate-vc1_sa10091' failed
> make: *** [fate-vc1_sa10091] Error 1
> 

VDPAU has the same results as VAAPI.


Without patch, mesa + Polaris 11:

$ DISPLAY=:0 make HWACCEL='vdpau' fate-vc1
TEST    vc1_sa00040
TEST    vc1_sa00050
TEST    vc1_sa10091
TEST    vc1_sa10143
--- /home/mrt/video/ffmpeg/vaapi/tests/ref/fate/vc1_sa10143     2016-05-09 17:55:19.599803161 +0100
+++ tests/data/fate/vc1_sa10143 2016-11-14 22:27:41.903250981 +0000
[...]
Test vc1_sa10143 failed. Look at tests/data/fate/vc1_sa10143.err for details.
/home/mrt/video/ffmpeg/vaapi/tests/Makefile:218: recipe for target 'fate-vc1_sa10143' failed
make: *** [fate-vc1_sa10143] Error 1


With patch, mesa + Polaris 11:

$ DISPLAY=:0 make HWACCEL='vdpau' fate-vc1
TEST    vc1_sa00040
TEST    vc1_sa00050
TEST    vc1_sa10091
--- /home/mrt/video/ffmpeg/vaapi/tests/ref/fate/vc1_sa10091     2016-05-09 17:55:19.599803161 +0100
+++ tests/data/fate/vc1_sa10091 2016-11-14 22:26:17.108873397 +0000
[...]
Test vc1_sa10091 failed. Look at tests/data/fate/vc1_sa10091.err for details.
/home/mrt/video/ffmpeg/vaapi/tests/Makefile:218: recipe for target 'fate-vc1_sa10091' failed
make: *** [fate-vc1_sa10091] Error 1



More information about the ffmpeg-devel mailing list