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?
- 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.
- Play a h264 (AVC) video.
- Launch chromium (the same base version, installed by snap) with the same flags, then play the same video.
Expected result:
-
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.
-
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 -
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.