Bug 32060 - Missing support for H264/HEVC encoding/decoding in radeonsi vaapi driver
Summary: Missing support for H264/HEVC encoding/decoding in radeonsi vaapi driver
Status: NEW
Alias: None
Product: Mageia
Classification: Unclassified
Component: RPM Packages (show other bugs)
Version: Cauldron
Hardware: All Linux
Priority: Normal normal
Target Milestone: ---
Assignee: Kernel and Drivers maintainers
QA Contact:
URL: https://gitlab.freedesktop.org/mesa/m...
Whiteboard:
Keywords: FOR_RELEASENOTES10
Depends on: 32562
Blocks:
  Show dependency treegraph
 
Reported: 2023-06-29 17:36 CEST by Gilles Mouchard
Modified: 2023-12-06 20:39 CET (History)
9 users (show)

See Also:
Source RPM: mesa-23.1.3-3.mga9.src.rpm
CVE:
Status comment:


Attachments

Description Gilles Mouchard 2023-06-29 17:36:37 CEST
Description of problem:

Support for H264/HEVC encoding/decoding is missing in radeonsi vaapi driver.
vainfo does not report support for missing codecs with an AMD RX6600 (RDNA2):

Trying display: wayland
Trying display: x11
libva info: VA-API version 1.16.0
libva info: Trying to open /usr/lib64/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_1_16
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.16 (libva 2.16.0)
vainfo: Driver version: Mesa Gallium driver 23.1.3 for AMD Radeon RX 6600 (navi23, LLVM 15.0.6, DRM 3.52, 6.3.9-desktop-2.mga9)
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileJPEGBaseline           : VAEntrypointVLD
      VAProfileVP9Profile0            : VAEntrypointVLD
      VAProfileVP9Profile2            : VAEntrypointVLD
      VAProfileAV1Profile0            : VAEntrypointVLD
      VAProfileNone                   : VAEntrypointVideoProc

There are some missing meson build options in the spec file:
-D video-codecs=h264dec,h264enc,h265dec,h265enc,vc1dec   (see https://gitlab.freedesktop.org/mesa/mesa/-/issues/6616)

Version-Release number of selected component (if applicable): 23.1.3

How reproducible:

Steps to Reproduce:
1.
2.
3.
Comment 1 Lewis Smith 2023-06-29 20:10:26 CEST
Thank you for the report.

Assigning to the drivers team.

Assignee: bugsquad => kernel

Comment 2 Dave Hodgins 2023-06-29 22:55:56 CEST
If enabled, it would have to be in a tainted version of mesa
https://www.fsf.org/licensing/h264-patent-license

CC: (none) => davidwhodgins

Comment 3 psyca 2023-07-25 10:58:06 CEST
Just as Note to have it documented here too (Mageia Forum : Tainted Mesa DRI drivers for Mageia 9): 
https://forums.mageia.org/en/viewtopic.php?t=14995

CC: (none) => linux

Comment 4 Herbert Poetzl 2023-08-24 15:20:30 CEST
This affects a number of video players (mpv, ffmpeg, mplayer, ...) which cannot use hardware decoding and instead fall back to software decoding which then results in 10-20 times more CPU usage, stuttering and playback issues.

It should be trivial to create a tainted package/version which has the necessary define for the mesa build which would solve all those issues.

Thanks in advance,
Herbert

CC: (none) => herbert

Comment 5 Giuseppe Ghibò 2023-10-11 15:30:05 CEST
This should be fixed in mesa-21.3.9 (either in cauldron and mga9's updates_testing).

CC: (none) => ghibomgx

Comment 6 Morgan Leijström 2023-10-12 09:50:30 CEST
mesa-23.1.9-1.mga9 tainted installed and working on my system with nvidia470, kernel 6.4.16-desktop-3, Plasma. (not testing the problem in this bug)

CC: (none) => fri

Comment 7 Aurelian R 2023-10-12 13:15:13 CEST
Having somewhat similar hardware as the reporter, I can confirm that H264/HEVC  support is enabled/working in tainted mesa-23.1.9 for Mageia 9 and Cauldron.

$ vainfo
Trying display: wayland
libva info: VA-API version 1.16.0
libva info: Trying to open /usr/lib64/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_1_16
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.16 (libva 2.16.0)
vainfo: Driver version: Mesa Gallium driver 23.1.9 for AMD Radeon RX 6600 XT (navi23, LLVM 15.0.6, DRM 3.52, 6.4.16-desktop-3.mga9)
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileVC1Simple              : VAEntrypointVLD
      VAProfileVC1Main                : VAEntrypointVLD
      VAProfileVC1Advanced            : VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointEncSlice
      VAProfileH264High               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointEncSlice
      VAProfileHEVCMain               : VAEntrypointVLD
      VAProfileHEVCMain               : VAEntrypointEncSlice
      VAProfileHEVCMain10             : VAEntrypointVLD
      VAProfileHEVCMain10             : VAEntrypointEncSlice
      VAProfileJPEGBaseline           : VAEntrypointVLD
      VAProfileVP9Profile0            : VAEntrypointVLD
      VAProfileVP9Profile2            : VAEntrypointVLD
      VAProfileAV1Profile0            : VAEntrypointVLD
      VAProfileNone                   : VAEntrypointVideoProc

CC: (none) => arusanu

Marja Van Waes 2023-11-24 16:25:40 CET

Depends on: (none) => 32562

Comment 8 Morgan Leijström 2023-12-01 14:18:11 CET
So this tainted version with enabled H264/HEVC encoding/decoding will be news for Mageia 10 (and 9.1 if any)

Hmm we still miss keywords for Mageia 10, i.e FOR_RELEASENOTES10

Status comment: (none) => FOR_RELEASENOTES10

Comment 9 Guillaume Bedot 2023-12-06 10:45:43 CET
It is enabled for r600, too (the supported codecs only of course).

$ vainfo
Trying display: wayland
libva info: VA-API version 1.20.0
libva info: Trying to open /usr/lib64/dri/r600_drv_video.so
libva info: Found init function __vaDriverInit_1_19
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.20 (libva 2.20.0)
vainfo: Driver version: Mesa Gallium driver 23.1.9 for AMD RS780 (DRM 2.50.0 / 6.5.3-desktop-1.mga10, LLVM 15.0.6)
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            :	VAEntrypointVLD
      VAProfileMPEG2Main              :	VAEntrypointVLD
      VAProfileVC1Simple              :	VAEntrypointVLD
      VAProfileVC1Main                :	VAEntrypointVLD
      VAProfileVC1Advanced            :	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointVLD
      VAProfileH264Main               :	VAEntrypointVLD
      VAProfileH264High               :	VAEntrypointVLD
      VAProfileNone                   :	VAEntrypointVideoProc

With mpv --hwdec=auto, it now uses about ten times less CPU, fine !

CC: (none) => geex+mageia

Comment 10 Frédéric "LpSolit" Buclin 2023-12-06 16:41:07 CET
(In reply to Morgan Leijström from comment #8)
> Hmm we still miss keywords for Mageia 10, i.e FOR_RELEASENOTES10

Done

Keywords: (none) => FOR_RELEASENOTES10
Status comment: FOR_RELEASENOTES10 => (none)

katnatek 2023-12-06 20:38:40 CET

CC: (none) => j.alberto.vc, joselp

Comment 11 katnatek 2023-12-06 20:39:38 CET
José Manuel, I think this could be a good blog post

Note You need to log in before you can comment on or make changes to this bug.