Bug 110257 - Major artifacts in mpeg2 vaapi hw decoding
Summary: Major artifacts in mpeg2 vaapi hw decoding
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/Gallium/radeonsi (show other bugs)
Version: git
Hardware: All All
: medium major
Assignee: Default DRI bug account
QA Contact: Default DRI bug account
Depends on:
Reported: 2019-03-27 11:23 UTC by 67b0226d
Modified: 2019-05-17 05:49 UTC (History)
4 users (show)

See Also:
i915 platform:
i915 features:

hardware-decoded screenshot (2.95 MB, image/png)
2019-03-27 11:23 UTC, 67b0226d
software-decoded screenshot (2.79 MB, image/png)
2019-03-27 11:23 UTC, 67b0226d

Description 67b0226d 2019-03-27 11:23:33 UTC
Created attachment 143787 [details]
hardware-decoded screenshot


on latest Mesa I still get tons of artifacts when decoding MPEG2 on my AMD card via VAAPI, to the point where it is not usable for video decoding at all to be honest.
I've attached sample screenshots to show the problem - one software-decoded and one hardware-decoded via libva in mpv.
The sample video is taken from https://www.w6rz.net/1080p25.zip but the artifacts are visible more or less on any MPEG2 video including DVDs.

There is this older bug report: https://bugs.freedesktop.org/show_bug.cgi?id=93760 but I'm not sure it's related because I do not get any assertion failure and it vaguely reads like it has been fixed?

For clarification, I see no artifacts with VDPAU.

Tested with Mesa-19.1.0-devel (git-bea540173c), libva 2.5.0-pre1 (git-c98b06d2b8), FFmpeg N-93467-g54655623a8
VAAPI driver string: Mesa Gallium driver 19.1.0-devel for Radeon RX 580 Series (POLARIS10, DRM 3.27.0, 4.20.13-arch1-1-ARCH, LLVM 7.0.1)

I verified this with mpv, gstreamer and Kodi.
mpv seems to have disabled mpeg2 hw decoding by default due to this problem: https://github.com/mpv-player/mpv/commit/3dd59dbe
In Kodi we cannot go this route because we want to support low-end hardware that might have trouble decoding 1080p in software out-of-the-box.
I want to avoid having to blacklist the radeon vaapi driver for mpeg2 if possible.
Comment 1 67b0226d 2019-03-27 11:23:51 UTC
Created attachment 143788 [details]
software-decoded screenshot
Comment 2 Andrew Randrianasulu 2019-05-17 04:52:19 UTC
wasn't this fixed by https://cgit.freedesktop.org/mesa/mesa/commit/?id=d507bcdcf26b417dea201090165af651253b6b11 

st/va: reverse qt matrix back to its original order
The quantiser matrix that VAAPI provides has been applied with inverse z-scan.
However, what we expect in MPEG2 picture description is the original order.
Therefore, we need to reverse it back to its original order.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110257
Cc: mesa-stable@lists.freedesktop.org

I can only test with Cinelerra-GG, and my nv92 crad decodes 1080p25 mpeg2 very slowly (video decoder clock problem) - but for me images were ok!
Comment 3 67b0226d 2019-05-17 05:49:40 UTC
Yes indeed, this bug is even listed in the 19.0.2 release notes. It was probably just forgotten to comment here. Anyhow, thanks Boyuan Zhang for the fix, works perfectly fine now with mesa 19.0.3 installed from normal repos!

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.