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 Shelly 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.
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 the
Exec=line in their.desktopfile (copy from/usr/share/applications/to~/.local/share/applications/first).
- Some browsers (Brave, Edge, Vivaldi, Opera) might require editing the
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.
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.
Brave - 7700xt (Contributed by DaJRJesus)
Section titled “Brave - 7700xt (Contributed by DaJRJesus)”-
Browser: Brave
-
GPU: AMD Radeon RX 7700 XT
-
Flags File Path:
~/.config/brave-flags.conf
--ignore-gpu-blocklist--enable-gpu-rasterization--enable-zero-copy--enable-features=AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL,AcceleratedVideoEncoder,CanvasOopRasterization,VaapiIgnoreDriverChecks,UseMultiPlaneFormatForHardwareVideo--ozone-platform-hint=autoNotes: Works on Wayland. Disabling “Ambient Mode” in YouTube settings is required to prevent UI lag.
Vivaldi - AMD Radeon RX 9070 XT (Contributed by tTrmc)
Section titled “Vivaldi - AMD Radeon RX 9070 XT (Contributed by tTrmc)”-
Browser: Vivaldi
-
GPU: AMD Radeon RX 9070 XT (RDNA 4 / gfx1201)
-
Flags File Path:
~/.config/vivaldi-stable.conf
--ignore-gpu-blocklist--enable-gpu-rasterization--enable-zero-copy--ozone-platform=wayland--enable-features=VaapiVideoDecoder,AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL,AcceleratedVideoEncoder,VaapiIgnoreDriverChecks,UseMultiPlaneFormatForHardwareVideoNotes:
- Tested on CachyOS with kernel 6.19.11-1-cachyos, Mesa 26.0.3, GNOME (Wayland), display 2560x1440.
- Confirmed working:
vivaldi://gpushows Video Decode and Video Encode as “Hardware accelerated”. Full codec support for H264, VP9, HEVC, AV1 decoding and H264, AV1 encoding. DevTools Media tab showsVaapiVideoDecoderas the active decoder. - The RX 9070 XT (RDNA 4) may be on Chromium’s GPU blocklist, so
--ignore-gpu-blocklistis required. - The log may show a warning:
'--ozone-platform=wayland' is not compatible with Vulkan— this does not prevent hardware acceleration from working. You can alternatively use--ozone-platform-hint=autoif you prefer.
Google Chrome - AMD Radeon RX 9070 XT (Contributed by naknak)
Section titled “Google Chrome - AMD Radeon RX 9070 XT (Contributed by naknak)”-
Browser: Google Chrome
-
GPU: AMD Radeon RX 9070 XT (RDNA 4 / gfx1201)
-
Flags File Path:
~/.config/chrome-flags.conf
--ignore-gpu-blocklist--enable-gpu-rasterization--enable-zero-copy--ozone-platform-hint=auto--use-gl=angle--use-angle=vulkan--enable-features=VaapiVideoDecoder,AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL,AcceleratedVideoEncoder,VaapiIgnoreDriverChecks,UseMultiPlaneFormatForHardwareVideo,Vulkan,VulkanFromANGLE,DefaultANGLEVulkanNotes:
- Video decoding and encoding showing as
Hardware acceleratedonchrome://gpu. - Sometimes inspecting the
mediatab on a YouTube video will show Hardware acceleration, sometimes not.
Vivaldi - AMD Ryzen AI Max+ 395 (Contributed by woutervanelten)
Section titled “Vivaldi - AMD Ryzen AI Max+ 395 (Contributed by woutervanelten)”-
Browser: Vivaldi (8.0.4033.35)
-
APU: AMD Radeon 8060S (GFX1151/Strix Halo)
-
Flags File Path:
~/.config/vivaldi-stable.conf
--ignore-gpu-blocklist--enable-gpu-rasterization--enable-zero-copy--ozone-platform=wayland--enable-features=VaapiVideoDecoder,AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL,AcceleratedVideoEncoder,VaapiIgnoreDriverChecks,UseMultiPlaneFormatForHardwareVideoNotes:
- Tested on CachyOS with kernel 7.0.10-2-cachyos, Mesa 26.1.1, GNOME (Wayland), display 5120x1440.
- Confirmed working:
vivaldi://gpushows Canvas, Compositing, Rasterization, Video Decode, Video Encode, WebGL, WebGPU, and WebGPU interop as “Hardware accelerated”. Full codec support for H264, H265, VP9, AV1 decoding and H264, H265 and AV1 encoding.