Enable Video Acceleration for Chrome / Chromium in Ubuntu with NVIDIA

Published: September 11, 2026 — Leave a comment

This is a step by step guide shows how to enable NVIDIA GPU accelerated video decoding for Google Chrome, Chromium, Brave, Edge, etc web browsers in Ubuntu.

As you may know, Chromium based web browsers do not support NVDEC (NVIDIA Decoder) for video acceleration in Linux by default. The open-source NVIDIA VA-API driver workaround the issue by translating VA-API calls (that most browsers supported) into NVIDIA’s NVDEC video decoding functionality.

In this tutorial, I’m going to show you how to install the workaround and set it up for Chrome/Chromium based browsers on Ubuntu.

NOTE: This tutorial does NOT work on Optimus laptop. See this bug report. It does NOT for Snap apps as well!

This tutorial was tested and works in Ubuntu 26.04 with Google Chrome, Chromium, Edge, Brave browsers. It should also work in Ubuntu 24.04, Ubuntu 22.04 and with other Chromium based browsers.

Step 1: Install NVIDIA VA-API Driver

The open-source driver was initially designed for Firefox web browser, while, Chromium browser support was added since version 0.0.18.

1. To install the driver, press Ctrl+Alt+T on keyboard to launch terminal, and run command to add this unofficial PPA:

sudo add-apt-repository ppa:ubuntuhandbook1/nvidia-vaapi

2. Then refresh cache by running command:

sudo apt update

Ubuntu now updates the cache automatically while adding PPA, though Linux Mint user needs to run it manually unless adding PPA through the built-in “Software Sources” utility.

3. Finally, the driver package:

sudo apt install nvidia-vaapi-driver

During the installing process, you may keep an eye on the terminal output to see if the package from PPA (version >= 0.0.18) is being installed.

For those who don’t trust 3rd-party PPAs, download the source tarball from Github releases page, then extract and open the source folder in terminal.

Finally run the commands below one by one to build from source:

  • Install the build dependencies:
    sudo apt install build-essential meson gstreamer1.0-plugins-bad libffmpeg-nvenc-dev libva-dev libegl1-mesa-dev libgstreamer-plugins-bad1.0-dev libgles2-mesa-dev
  • Next, run the commands below to test, build and install (make sure running the commands inside the source folder):
    ./test.sh
    meson setup build
    meson install -C build

Step 2: Test If the Driver Works for You

To make it work, you need to launch your Chromium based browser with certain parameters. It’s better to try it out in command line before making it permanent.

1. First, launch terminal (Ctrl+Alt+T) and run commands to set environment variable and display VA-API driver information:

export LIBVA_DRIVER_NAME=nvidia
vainfo

Run sudo apt install vainfo to install the tool if command not found. If everything goes well, it should output driver version: “VA-API NVDEC drver [direct backend]” as the screenshot below shows you.

2. For beginners who are new to Linux and don’t even know how to launch an app from command line, do this step to find out the command to launch your browser.

If you installed the web browser through the native .deb package, then the executable file was mostly installed in /usr/bin directory.

In the case, run the similar command line to tell the executable name:

ls /usr/bin/ |grep -i "chromium"

Here replace chromium with chrome, edge, brave, opera etc according what browser you use.

In my case as the screenshot below shows, I can run google-chrome or google-chrome-stable to launch the Chrome browser from command line, and run chromium-browser to launch chromium from terminal.

If your browser was installed as Flatpak package, then run the command below to find out the App ID:

flatpak list --app --columns=name,application

According to the app ID, you can launch the browser with a command similar to the one below:

flatpak run org.chromium.Chromium

Here replace org.chromium.Chromium with your browser’s app ID, e.g., com.brave.Browser.

3. Once you find out how to launch your web browser from command line, run a command similar to the one below to launch it with the parameters that use NVIDIA VA-API driver:

LIBVA_DRIVER_NAME=nvidia google-chrome --enable-features=AcceleratedVideoDecodeLinuxGL,VaapiOnNvidiaGPUs --ignore-gpu-blocklist --use-gl=angle --use-angle=gl --ozone-platform=wayland

Here replace google-chrome in command with chromium-browser, microsoft-edge, or flatpak run org.chromium.Chromium etc according the last step. And, skip ozone-platform=wayland if you’re NOT on Wayland that’s default in GNOME and KDE Plasma desktops.

When the browser opens, play a video from either your local folder or websites, such as Youtube. (You probably need to install enhanced-h264ify extension for Youtube video). And, use Resources app to monitor if your GPU is decoding.

For Ubuntu 24.04 and 22.04 without Resources app, install nvtop via command below:

sudo apt install nvtop

Then run nvtop in another terminal window. It will show you a DEC section in the GPU row if your NVIDIA GPU is decoding video.

Step 3: Make it work when your launch the browser via app shortcut icon

If everything goes well, you can then edit the configuration file for your browser app shortcut icon, to make the video acceleration work when launching the browser from application launcher.

For Flatpak App

The app shortcut icons are handled by .desktop files. For the browser installed as Flatpak package, run the command below to navigate to the destination folder:

cd /var/lib/flatpak/exports/share/applications/

If you installed Flatpak package via --user flag, then run cd ~/.local/share/flatpak/exports/share/applications instead.

Then run ls command to list the .desktop files. It’ll be something look like org.chromium.Chromium.desktop or others depend on your browser’s app ID.

It’s OK to edit the file directly, but the changes will be overwritten after a flatpak package update.

So, it’s better to copy that file to user’s local folder by running the commands below one by one (see the last screenshot):

  • Create the user’s local folder for storing .desktop file:
    mkdir -p ~/.local/share/applications
  • Copy the chromium-based browser’s .desktop file into that folder:
    sudo cp /var/lib/flatpak/exports/share/applications/org.chromium.Chromium.desktop ~/.local/share/applications/
  • Finally, change the owner ship to your user:
    sudo chown $USER:$USER ~/.local/share/applications/org.chromium.Chromium.desktop

Here you need to replace org.chromium.Chromium in the last 2 commands with your browser’s app ID.

Finally, edit the file with your favorite text editor. For default GNOME desktop, use gnome-text-editor for 24.04+ or gedit for 22.04.

Here I use nano that works in most desktop environments (Also, replace App-ID with yours).

nano ~/.local/share/applications/org.chromium.Chromium.desktop

When file opens, edit the values for all the Exec= lines. And, add:

  • env LIBVA_DRIVER_NAME=nvidia at the beginning.
  • --enable-features=AcceleratedVideoDecodeLinuxGL,VaapiOnNvidiaGPUs --ignore-gpu-blocklist --use-gl=angle --use-angle=gl --ozone-platform=wayland before the @@u %U @@.

Also skip --ozone-platform=wayland for non-Wayland desktop session.

After saved the .desktop file (for nano, press Ctrl+S to save, then Ctrl+X to exit), launch the browser from Gnome overview or application launcher, play a video and see if hardware acceleration works.

NOTE: for missing app icon issue, try copying the icon file from /var/lib/flatpak to user’s local icon folder. See the screenshot below, but replace browser name chromium accordingly.

For Native .DEB App

If you installed the browser via native .deb package, then run a command similar to the one below to find the .desktop file:

ls /usr/share/applications/ |grep -i "chrome"

Also replace chrome with your browser’s key name.

Once you found out the .desktop file, copy it to user’s local folder (replace google-chrome.desktop below with yours):

sudo cp /usr/share/applications/google-chrome.desktop ~/.local/share/applications

And, change the owner ship to your user:

sudo chown $USER:$USER ~/.local/share/applications/*

Finally, edit it with your favorite text editor (here use universal nano CLI text editor).

nano ~/.local/share/applications/google-chrome.desktop

When file opens, also change the Exec values with:

  • env LIBVA_DRIVER_NAME=nvidia at the beginning.
  • --enable-features=AcceleratedVideoDecodeLinuxGL,VaapiOnNvidiaGPUs --ignore-gpu-blocklist --use-gl=angle --use-angle=gl --ozone-platform=wayland before the %U.

As well, skip --ozone-platform=wayland for non-Wayland desktop session.

Finally save file. For nano text editor, press Ctrl+S to save file and Ctrl+X to exit.

How to Restore

If the driver does not work for you, or you just don’t want to use it anymore, then launch terminal (Ctrl+Alt+T) and run command to remove it:

sudo apt remove nvidia-vaapi-driver

Also remove the PPA by running command:

sudo add-apt-repository --remove ppa:ubuntuhandbook1/nvidia-vaapi

For the .desktop file changes, launch Files, press Ctrl+H to view hidden file/folder, and navigate to .local/share/applications. Finally, remove the corresponding files you created.

I'm a freelance blogger who started using Ubuntu in 2007 and wishes to share my experiences and some useful tips with Ubuntu beginners and lovers. Please comment to let me know if the tutorial is outdated! And, notify me if you find any typo/grammar/language mistakes. English is not my native language. Buy me a coffee: https://ko-fi.com/ubuntuhandbook1 |

No Comments

Be the first to start the conversation.

Leave a Reply

Text formatting is available via select HTML.

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> 

*