VA-API hardware video decoding doesn't work under Ubuntu (while Chromium does)

Description of the issue:
Hardware accelerated video decoding via the VA-API interface doesn’t work in Brave, while in the same base version of Chromium it works without problem.

System: Ubuntu 22.04 64-bit, Intel HD Graphics 530 (Skylake) with Intel iHD driver (intel-media-va-driver-non-free=22.3.1+ds1-1ubuntu0.1)

How can this issue be reproduced?

  1. Launch brave-browser in the command line with the flags:

–use-gl=angle
–use-angle=gl
–enable-features=VaapiVideoDecodeLinuxGL,VaapiVideoEncoder

as suggested by the Chromium document.

  1. Play a h264 (AVC) video.
  2. Launch chromium (the same base version, installed by snap) with the same flags, then play the same video.

Expected result:

  1. brave://gpu at the Video Acceleration Information table, there should be lists of supported codecs (as in Chromium chrome://gpu). But in Brave here is empty for both decoding and encoding.

  2. At the Brave’s tab playing the video, open the Inspect tool → Media, at the Video Decoder pane,
    Decoder Name = FFmpegVideoDecoder
    Hardware decoder = false
    ------ However in Chromium they are:
    Decoder Name = VaapiVideoDecoder
    Hardware decoder = true

  3. intel_gpu_top the Video bar shows nonzero usage in the Chromium case but zero in the Brave case.

Brave Version( check About Brave):
Version 1.64.116 Chromium: 123.0.6312.105 (Official Build) (64-bit)

Additional Information:

vainfo output

libva info: VA-API version 1.14.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_14
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.14 (libva 2.12.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 22.3.1 ()
vainfo: Supported profile and entrypoints
VAProfileNone : VAEntrypointVideoProc
VAProfileNone : VAEntrypointStats
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Simple : VAEntrypointEncSlice
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointFEI
VAProfileH264Main : VAEntrypointEncSliceLP
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointFEI
VAProfileH264High : VAEntrypointEncSliceLP
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointEncPicture
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264ConstrainedBaseline: VAEntrypointFEI
VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
VAProfileVP8Version0_3 : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointEncSlice
VAProfileHEVCMain : VAEntrypointFEI

brave://gpu report is too long for this post; will post it separately if required.

1 Like

i am experiencing the same thing. i am running pop_os with brave Version 1.64.122 Chromium: 123.0.6312.122 (Official Build) (64-bit)

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.