This article describes how to enable hardware acceleration in the Chromium browser running on Raspberry Pi OS (for Raspberry Pi 4).
By enabling GPU acceleration, the CPU usage should be greatly reduced when playing supported videos (e.g. on YouTube). In my case, with Raspberry Pi 4 Model B, with hardware acceleration enabled, the main Chromium gpu and renderer processes are reduced from ~160% and ~130% to ~30% and below 23% CPU usage (according to htop) . Incidentally, this is the premise of my plan to write an article soon.
Raspberry Pi OS comes with all the functions required to run Chromium with hardware acceleration on Raspberry Pi 4, but it cannot be used immediately. For Raspberry Pi 4, there is no need to install additional software packages, enable OpenGL, etc., because these packages are already enabled. You only need to enable some Chromium browser logos; there is also a “fix” below to fix screen tearing, which occurs when playing hardware-accelerated full-screen videos.
I have tested it with Raspberry Pi 4 Model B (using Raspberry Pi OS), so I can only confirm if it works.according to This, For older Raspberry Pi models, you may need to use raspi-config to enable OpenGL with fake/full KMS (I’m not sure if older models require additional steps). Raspberry Pi 4 does not require this feature.
However, since I can only test on Raspberry Pi 4 Model B, and I don’t like to write articles about things that I cannot test myself, I only focus on Raspberry Pi 4 and the instructions in this article. .
Enable hardware acceleration in the Chromium browser running on Raspberry Pi OS (Raspberry Pi 4)
To enable hardware acceleration in the Chromium browser running on Raspberry Pi OS (Raspberry Pi 4), perform the following 3 steps (well, more like 2.5):
1. Enable hardware acceleration in the Chromium browser.
Enable the following flags in
- Overlay software rendering list:
- Hardware accelerated video decoding
- GPU rasterization:
When finished, restart Chromium.
2. Make sure that the h264ify Chromium extension is enabled.
Comes with Chromium on Raspberry Pi OS The origin of uBlock with h264ify Extensions installed by default. Make sure that h264ify is enabled so that YouTube can use h264-encoded video that supports hardware accelerated video decoding with Raspberry Pi.
3. Optional: Solve the problem of full screen video tearing.
Repair full screen video tearing (fix by), we need to disable the synthesizer. To do this, open a terminal on the Raspberry Pi and run the following command to run the console version of the Raspberry Pi software configuration tool:
Down Arrow keys to navigate its menus, and
Tab Choose similar buttons
Back.To disable the synthesizer, go to
Advanced Options -> Compositor Then choose
No Disable it.
When finished, select
Finish And restart the system.
That’s it. Your Chromium web browser should now be hardware accelerated and be able to perform hardware accelerated video decoding.
Related: How to enable hardware-accelerated video decoding in Google Chrome, Brave, Vivaldi and Opera browsers on Debian, Ubuntu or Linux Mint
To check whether the Chromium browser uses hardware acceleration, please visit
chrome://gpu In Chromium:
If hardware acceleration is enabled, all fields related to hardware acceleration should be displayed in green.
This is how it looked before the above flag was enabled (so, in the screenshot below, hardware acceleration is not enabled):
To check if the hardware accelerated video decoding in Chromium is working properly, please play the YouTube video and press
Ctrl + Shift + i This will open Chrome DevTools.Next, click on the 3 vertical dot menus in the upper right corner of Chrome DevTools and select
More tools -> Media:
In the new
Media Under the “DevTools” tab, click on the YouTube video on the left (in
Players), and then make sure
Properties The sub-tab is selected, then scroll down to
Video Decoder section. Use Chromium 88+ on Raspberry Pi OS,
Decoder name Value should be
MojoVideoDecoder If hardware accelerated video decoding is enabled and it works normally.Until Chromium 86 (I’m not sure about version 87), the decoder was named
MmalVideoDecoder When hardware accelerated video decoding is enabled and works normally.
You should also note that the CPU usage is much lower, for example, when playing a 1080p video on YouTube.
You may also need to enable Widevine in the Chromium browser running on Raspberry Pi OS, which can play Netflix, Amazon Prime, Hulu, etc.