Chromium-Based Browsers HW Acceleration
This guide outlines enabling hardware acceleration in Chromium-based browsers on CachyOS. This offloads video/graphics tasks to your GPU, improving performance.
Prerequisites
Section titled “Prerequisites”Required:
- Chromium-based Browser: (e.g., Chrome, Brave, Ungoogled Chromium, Edge)
- GPU Drivers/APIs: Up-to-date Mesa (AMD/Intel) or NVIDIA drivers, with Vulkan/VA-API/VDPAU configured.
Optional:
- amdgpu_top: Install
amdgpu_topfrom the repository through package manager if you wish to monitor AMD GPU activity from the terminal. - nvtop: (Intel GPU’s only) Install
nvtop(Lunar Lake) andintel-gpu-tools(Pre-Lunar Lake) through the octopi package manager if you wish to monitor Intel GPU activity from the terminal.
Contribution
Section titled “Contribution”This guide is extensible. If you have a working hardware acceleration setup for a specific GPU and Chromium-based browser, contribute by adding a new section under “GPU & Browser Configurations.” Include:
- Browser Name
- GPU Model
- Flags:
~/.config/[browser]-flags.confcontent. - File Path: Full path to the flags file.
- Notes (Optional): Key drivers, packages, or setup specifics.
Setup Steps
Section titled “Setup Steps”-
Identify Flags File: Locate your browser’s flags file path in “GPU & Browser Configurations.”
-
Edit Flags File: Open/create the file using
nano(or your preferred text editor likemicro,vim).Terminal window nano [PATH_TO_YOUR_BROWSER_FLAGS_FILE]# Example: nano ~/.config/chrome-flags.conf -
Add Flags: Paste the relevant GPU/browser flags into the file.
-
Save & Close.
-
Restart Browser: Close all browser instances and relaunch.
-
Verify: Navigate to
chrome://gpu(orbrave://gpu,edge://gpu, etc.). Confirm “Hardware accelerated” status under “Video Acceleration Information” and “Graphics Feature Status.”
How to Verify Video Hardware Acceleration
Section titled “How to Verify Video Hardware Acceleration”- Open a terminal and run the command:
Terminal window amdgpu_top - Start playing a video in your browser (e.g., on YouTube).
- Observe the
mediasection inamdgpu_top. You should see some utilization here, indicating your GPU’s media engine is active. If it remains at 0% during video playback, hardware acceleration might not be fully engaged for decoding.
- Open a terminal and run the command:
Terminal window sudo nvtop - Start playing a video in your browser (e.g., on YouTube).
- Observe the
ENC/DECpercentage innvtop, the percentage should increase if video decoding is working in hardware.
-
Open a terminal and run the command:
Terminal window sudo intel_gpu_topNote: Some newer Intel gpu’s such as Lunar Lake GPU’s no longer expose the gpu performance counters with
intel_gpu_top, usenvtopfor these systems -
Start playing a video in your browser (e.g., on YouTube).
-
Observe the
VideoandVideoEnhancepercentage in intel_gpu_top, the percentage should increase if video decoding is working in hardware.
-
Open your Chromium-based browser.
-
Start playing a video (e.g., on YouTube or a local file).
-
Open Developer Tools: Press
F12orCtrl+Shift+I. -
Navigate to the Media tab. If you don’t see it, click the three dots (
...) or>>(More tabs) on the Developer Tools toolbar, then selectMedia. -
In the “Players” section on the left, click on the entry corresponding to your video.
-
In the main panel, scroll down to the Video Decoder section.
-
Look for the
Hardware decoderlabel. It should betrue. If it saysfalseor shows a software decoder name (e.g.,FFmpegVideoDecoder,VpxVideoDecoder,Dav1dVideoDecoder), hardware acceleration is not active for that video.
GPU & Browser Configurations
Section titled “GPU & Browser Configurations”AMD Radeon RX 6900 XT (Google Chrome)
Section titled “AMD Radeon RX 6900 XT (Google Chrome)”-
Browser: Google Chrome
-
GPU: AMD Radeon RX 6900 XT
-
Flags File:
~/.config/chrome-flags.conf
--use-gl=angle--use-angle=vulkan--enable-features=Vulkan,VulkanFromANGLE,DefaultANGLEVulkan,AcceleratedVideoDecodeLinuxZeroCopyGL,AcceleratedVideoEncoder,VaapiIgnoreDriverChecks,UseMultiPlaneFormatForHardwareVideo--ozone-platform-hint=x11Notes: Leverages Vulkan (via ANGLE) and VA-API. --ozone-platform-hint=x11 can be useful even on Wayland for certain acceleration paths.
Nvidia RTX 4090 (Vivaldi)
Section titled “Nvidia RTX 4090 (Vivaldi)”-
Browser: Vivaldi
-
GPU: Nvidia RTX 4090
-
Flags File:
~/.config/vivaldi-stable.conf
--enable-features=VaapiVideoDecoder,AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL- Flags File:
/usr/share/applications/vivaldi-stable.desktop
# Keep all other lines the same# You should only change this Exec= entry under the '[Desktop Entry]' sectionExec=/usr/bin/vivaldi-stable --enable-features=VaapiVideoDecoder,AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL %UNotes:
You should only need to apply one of these conf file changes, but doing so on both should not cause issues.
Alternatively you can do the following for KDE:
- Delete any Task Manager / taskbar shortcuts for Vivaldi
- Search for
Vivaldiin the Application Launcher list - Right-click the entry in the Application Launcher and select
Edit Application... - In the
Command-line argumentssection, add in the following arguments before the last argument%U:
--enable-features=VaapiVideoDecoder,AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL- Launch Vivaldi and pin the process to your Task Manager / taskbar
AMD Radeon RX 550 (UnGoogled Chromium)
Section titled “AMD Radeon RX 550 (UnGoogled Chromium)”-
Browser: UnGoogled Chromium
-
GPU: AMD Radeon RX 550
-
Flags File:
~/.config/chromium-flags.conf
--enable-wayland-ime--ozone-platform=wayland--enable-features=AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL,AcceleratedVideoEncoder,WaylandSessionManagement,WaylandTextInputV3,WaylandUiScale,WaylandWindowDecorationsNotes:
If you’re using X11, use this:
--ozone-platform=x11--enable-features=AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL,AcceleratedVideoEncoderNvidia RTX 5070 TI (Brave)
Section titled “Nvidia RTX 5070 TI (Brave)”-
Browser: Brave
-
GPU: Nvidia RTX 5070 TI
-
Flags File:
~/.config/brave-flags.conf
--enable-features=VaapiVideoDecoder,AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL,AcceleratedVideoEncoder,VaapiIgnoreDriverChecksNotes:
- Video decoding and encoding showing as
Hardware acceleratedonbrave://gpu. - Sometimes inspecting the
mediatab on a YouTube video will show Hardware acceleration, sometimes not.
Template to contribute
Section titled “Template to contribute”[Your Browser] - [Your GPU Model] (Contributed by [Your Name/Handle])
Section titled “[Your Browser] - [Your GPU Model] (Contributed by [Your Name/Handle])”-
Browser: [e.g., Brave, Ungoogled Chromium, Microsoft Edge, Vivaldi, Opera, Chromium]
-
GPU: [e.g., NVIDIA GeForce RTX 3080, Intel Iris Xe]
-
Flags File Path: (Crucial, varies per browser!)
-
Common
.confpaths:-
Chromium:
~/.config/chromium-flags.conf -
Brave Browser:
~/.config/brave-flags.conf -
Ungoogled Chromium:
~/.config/ungoogled-chromium-flags.conf
-
-
.desktopfile modification: Some browsers (Brave, Edge, Vivaldi, Opera) might require editing theExec=line in their.desktopfile (copy from/usr/share/applications/to~/.local/share/applications/first).
-
Flags Content (for .conf file or Exec= line):
# Paste your flags here.# For .desktop files, flags are space-separated after the executable.Notes (Optional):
-
Required drivers (e.g.,
nvidia-dkms,intel-media-driver). -
Specific setup considerations or
.desktopfile modification instructions.