Skip to content

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.

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_top from 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) and intel-gpu-tools (Pre-Lunar Lake) through the Shelly package manager if you wish to monitor Intel GPU activity from the terminal.

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.conf content.
  • File Path: Full path to the flags file.
  • Notes (Optional): Key drivers, packages, or setup specifics.
  1. Identify Flags File: Locate your browser’s flags file path in “GPU & Browser Configurations.”

  2. Edit Flags File: Open/create the file using nano (or your preferred text editor like micro, vim).

    Terminal window
    nano [PATH_TO_YOUR_BROWSER_FLAGS_FILE]
    # Example: nano ~/.config/chrome-flags.conf
  3. Add Flags: Paste the relevant GPU/browser flags into the file.

  4. Save & Close.

  5. Restart Browser: Close all browser instances and relaunch.

  6. Verify: Navigate to chrome://gpu (or brave://gpu, edge://gpu, etc.). Confirm “Hardware accelerated” status under “Video Acceleration Information” and “Graphics Feature Status.”

  1. Open a terminal and run the command:
    Terminal window
    amdgpu_top
  2. Start playing a video in your browser (e.g., on YouTube).
  3. Observe the media section in amdgpu_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.
  • Browser: Google Chrome

  • GPU: AMD Radeon RX 6900 XT

  • Flags File: ~/.config/chrome-flags.conf

Terminal window
--use-gl=angle
--use-angle=vulkan
--enable-features=Vulkan,VulkanFromANGLE,DefaultANGLEVulkan,AcceleratedVideoDecodeLinuxZeroCopyGL,AcceleratedVideoEncoder,VaapiIgnoreDriverChecks,UseMultiPlaneFormatForHardwareVideo
--ozone-platform-hint=x11

Notes: Leverages Vulkan (via ANGLE) and VA-API. --ozone-platform-hint=x11 can be useful even on Wayland for certain acceleration paths.

  • Browser: Vivaldi

  • GPU: Nvidia RTX 4090

  • Flags File: ~/.config/vivaldi-stable.conf

Terminal window
--enable-features=VaapiVideoDecoder,AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL
  • Flags File: /usr/share/applications/vivaldi-stable.desktop
Terminal window
# Keep all other lines the same
# You should only change this Exec= entry under the '[Desktop Entry]' section
Exec=/usr/bin/vivaldi-stable --enable-features=VaapiVideoDecoder,AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL %U

Notes:

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:

  1. Delete any Task Manager / taskbar shortcuts for Vivaldi
  2. Search for Vivaldi in the Application Launcher list
  3. Right-click the entry in the Application Launcher and select Edit Application...
  4. In the Command-line arguments section, add in the following arguments before the last argument %U:
--enable-features=VaapiVideoDecoder,AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL
  1. Launch Vivaldi and pin the process to your Task Manager / taskbar
  • Browser: UnGoogled Chromium

  • GPU: AMD Radeon RX 550

  • Flags File: ~/.config/chromium-flags.conf

Terminal window
--enable-wayland-ime
--ozone-platform=wayland
--enable-features=AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL,AcceleratedVideoEncoder,WaylandSessionManagement,WaylandTextInputV3,WaylandUiScale,WaylandWindowDecorations

Notes:

If you’re using X11, use this:

Terminal window
--ozone-platform=x11
--enable-features=AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL,AcceleratedVideoEncoder
  • Browser: Brave

  • GPU: Nvidia RTX 5070 TI

  • Flags File: ~/.config/brave-flags.conf

Terminal window
--enable-features=VaapiVideoDecoder,AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL,AcceleratedVideoEncoder,VaapiIgnoreDriverChecks

Notes:

  • Video decoding and encoding showing as Hardware accelerated on brave://gpu.
  • Sometimes inspecting the media tab on a YouTube video will show Hardware acceleration, sometimes not.
  • Browser: Brave

  • GPU: AMD Radeon RX 7700 XT

  • Flags File Path: ~/.config/brave-flags.conf

Terminal window
--ignore-gpu-blocklist
--enable-gpu-rasterization
--enable-zero-copy
--enable-features=AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL,AcceleratedVideoEncoder,CanvasOopRasterization,VaapiIgnoreDriverChecks,UseMultiPlaneFormatForHardwareVideo
--ozone-platform-hint=auto

Notes: 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

Terminal window
--ignore-gpu-blocklist
--enable-gpu-rasterization
--enable-zero-copy
--ozone-platform=wayland
--enable-features=VaapiVideoDecoder,AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL,AcceleratedVideoEncoder,VaapiIgnoreDriverChecks,UseMultiPlaneFormatForHardwareVideo

Notes:

  • Tested on CachyOS with kernel 6.19.11-1-cachyos, Mesa 26.0.3, GNOME (Wayland), display 2560x1440.
  • Confirmed working: vivaldi://gpu shows Video Decode and Video Encode as “Hardware accelerated”. Full codec support for H264, VP9, HEVC, AV1 decoding and H264, AV1 encoding. DevTools Media tab shows VaapiVideoDecoder as the active decoder.
  • The RX 9070 XT (RDNA 4) may be on Chromium’s GPU blocklist, so --ignore-gpu-blocklist is 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=auto if 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

Terminal window
--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,DefaultANGLEVulkan

Notes:

  • Video decoding and encoding showing as Hardware accelerated on chrome://gpu.
  • Sometimes inspecting the media tab on a YouTube video will show Hardware acceleration, sometimes not.

[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 .conf paths:

      • Chromium: ~/.config/chromium-flags.conf

      • Brave Browser: ~/.config/brave-flags.conf

      • Ungoogled Chromium: ~/.config/ungoogled-chromium-flags.conf

    • .desktop file modification: Some browsers (Brave, Edge, Vivaldi, Opera) might require editing the Exec= line in their .desktop file (copy from /usr/share/applications/ to ~/.local/share/applications/ first).

Flags Content (for .conf file or Exec= line):

Terminal window
# 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 .desktop file modification instructions.