[HowTo] Enable Hardware Video Acceleration / Video Decode In Google Chrome, Brave, Vivaldi And Opera Browsers

No worries. Just seeking clarification.

I tried to be up front about how its a bunch of things I havent re-analyzed anytime recently.
(seems to work though)

Oh …but I did forget to mention its ungoogled-chromium here :wink:

In Google Chrome with Vulkan enabled I have flickering on pages like https://solarsystem.nasa.gov/planets/saturn/overview/

Chromium based browsers do not yet support Vulkan.

I don’t.

Then why is it working now? :wink:

I hope you got that I meant topmost realtime animation of Saturn and its moons? Anyway I guess it is probably Intel-related issue.

A post was split to a new topic: Chromium: Can’t enable Video encoding: Hardware acceleration

At least, there seem to be issues with hardware accelerated video decoding/playback when Vulkan is enabled.
I am currently running chromium-dev here, built from the sources for version 99.0.4844.9 and a few other modifications, such as using system ffmpeg, icu or openh264, and disabling Native Client and Widevine.
In that version, FFMpegVideoDecoder (i.e., software rendering) is always chosen for video playback (despite of chrome://gpu saying “Video Decode: Hardware accelerated”) as long as I have Vulkan enabled.
I have to disable Vulkan to get VDAVideoDecoder (hardware accelerated) to be chosen for video playback again.
My flags:

--disable-software-rasterizer
--disable-gpu-driver-workarounds
--disable-gpu-vsync
--disable-features=UseChromeOSDirectVideoDecoder
--enable-accelerated-2d-canvas
--enable-accelerated-video-decode
--enable-accelerated-mjpeg-decode
--enable-drdc
--enable-features=ParallelDownloading,UnexpireFlagsM90,VaapiVideoEncoder,VaapiVideoDecoder,CanvasOopRasterization
--enable-gpu-compositing
--enable-native-gpu-memory-buffers
--enable-gpu-rasterization
--enable-oop-rasterization
--enable-raw-draw
--enable-zero-copy
--ignore-gpu-blocklist
--use-gl=desktop
--num-raster-threads=6
# regain Sync and Google Login
--user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.82 Safari/537.36"

I’m still stuck on an older version of Chromium since the chromium-wayland-update AUR package hasn’t been updated yet.

When attempting to use google-chrome-stable, I still can’t get hardware video acceleration working properly/stable. I managed to get some hardware decoding going with the following in my config file but the browser gets very slow quickly and it becomes laggy very quickly.

--use-gl=egl
--enable-accelerated-video-decode
--enable-features=VaapiVideoDecoder
--disable-features=UseChromeOSDirectVideoDecoder

Running Intel Graphics Xe on an 11th gen i7.

Really hoping these issues with Wayland and Chrome (and hardware) are resolved soon.

I got tired of trying to get something as basic as hardware acceleration to work within Chrome/Chromium on wayland (yes I know there’s a wayland-specific chromium package on the AUR but it has lagged behind the main Chromium and I have no desire to run an insecure browser)

I ended up going back to X11 and hardware acceleration is working perfectly in Chromium again. Hope the Chromium devs can prioritize Wayland in the future!

HW on chromium works on XWayland though…with these flags:

--force-dark-mode
--enable-features=WebUIDarkMode
--use-gl=egl
--enable-zero-copy
--enable-accelerated-video-decode
--enable-features=VaapiVideoDecoder
--disable-features=UseChromeOSDirectVideoDecoder
--ignore-gpu-blocklist

Not on my end. Might be some further conflicts with my hardware (Tiger Lake with Iris Xe graphics) but I’ve tried virtually every combination of those flags and it would not work for me.

I may have been using the native Wayland backend (It’s not even clear to me how you change that to XWayland)

I’m fine with X11 for now, there were other minor glitches and bugs with Wayland that I was running into as well so X11 resolves that for the time being. Looking forward to going back to Wayland some day (for the third time) :slight_smile:

There is an interesting aspect about Youtube I just found out on Reddit (https://www.reddit.com/r/chrome/comments/t52v20/comment/hz30b6h/?utm_source=reddit&utm_medium=web2x&context=3).

YouTube is now using AV1 as a default, instead of VP9 formerly used. As the guy on Reddit has encountered, hardware acceleration for AV1 only works on the very latest graphics hardware. If your graphics card is older than a few weeks, AV1 hardware acceleration will not work in Chromium.

Only thing you can do about that is: Go to Youtube’s settings, Playback and Performance, and select “prefer AV1 for SD”. This enables VP9 again for all content better than 480p, and VP9 is hardware accelerated in Chromium even on ancient cards like my GeForce GTX 750 Ti.

1 Like

That option does not exist for me.

well, if it exists by starting a google session, in my case it is in automatic, although I think it is indifferent.

Do you have h264ify active? If yes, that option is indeed not available.

Yes, I have enhanced-h264ify blocking VP8 & AV1. I guess it’s doing it’s job. :laughing:

For me, it didn’t.
Even though I had enhanced-h264ify active, I still got AV1 but was not able to do anything about that.

For Brave 1.37.116 Chromium: 100.0.4896.127, at least on this device, you also need --disable-features=UseChromeOSDirectVideoDecoder for the hardware video acceleration to work.

1 Like

Now i can confirm accelerated decoding is working, thanks a lot, though Brave lags a lot with the flag --use-gl=egl under Wayland.

Is is too much to ask to read the tutorial before posting? Maybe check if it was updated? Hmm? I added that bit back in February.

You’re welcome.