{"id":51974,"date":"2026-09-01T12:01:04","date_gmt":"2026-09-01T12:01:04","guid":{"rendered":"https:\/\/ubuntuhandbook.org\/?p=51974"},"modified":"2026-09-01T12:01:04","modified_gmt":"2026-09-01T12:01:04","slug":"nvidia-va-api-driver-0-0-18-chromium","status":"publish","type":"post","link":"https:\/\/ubuntuhandbook.org\/index.php\/2026\/09\/nvidia-va-api-driver-0-0-18-chromium\/","title":{"rendered":"NVIDIA VA-API Driver 0.0.18 Enables Video Acceleration for Chromium"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-thumbnail wp-image-38385\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2021\/06\/nvidia-logo-250x250.webp\" alt=\"\" width=\"250\" height=\"250\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2021\/06\/nvidia-logo-250x250.webp 250w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2021\/06\/nvidia-logo-300x300.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2021\/06\/nvidia-logo-600x600.webp 600w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2021\/06\/nvidia-logo-768x768.webp 768w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2021\/06\/nvidia-logo.webp 1200w\" sizes=\"auto, (max-width: 250px) 100vw, 250px\" \/><\/p>\n<p>NVIDIA VA-API driver, the free open-source video acceleration API implementation using NVIDIA NVDEC, released new 0.0.18 version yesterday.<\/p>\n<p>The new version finally makes NVIDIA GPU accelerated video decoding usable in Linux with Chrome \/ Chromium web browser.<\/p>\n<p><!--more--><\/p>\n<div id=\"attachment_49072\" style=\"width: 620px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-49072\" class=\"size-large wp-image-49072\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2025\/06\/nvidia-vaapi-firefox-700x589.webp\" alt=\"\" width=\"610\" height=\"513\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2025\/06\/nvidia-vaapi-firefox-700x589.webp 700w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2025\/06\/nvidia-vaapi-firefox-300x252.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2025\/06\/nvidia-vaapi-firefox-768x646.webp 768w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2025\/06\/nvidia-vaapi-firefox.webp 1050w\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" \/><p id=\"caption-attachment-49072\" class=\"wp-caption-text\">Firefox Web Content acceleration through NVIDIA GPU<\/p><\/div>\n<p>Hardware video acceleration is a feature that allows GPU to decode video, thus offloading the CPU and saving power.<\/p>\n<p>The popular Firefox (<i>v153 added Vulkan video decoding support<\/i>) and Chromium browsers rely on VA-API for video acceleration on Linux. The VA-API however does not support NVIDIA GPUs. So, NVIDIA VA-API driver was born to workaround.<\/p>\n<p>The implementation was specifically designed for Firefox users. Now with version 0.0.18, it also makes video decoding with NVIDIA GPU acceleration usable in Google Chrome or Chromium browsers in Linux.<\/p>\n<p>Chromium has a <code>VaapiOnNvidiaGPUs<\/code> feature for experimental NVIDIA VA-API support. It&#8217;s however disabled by default, because the decoded video surfaces from NVIDIA driver is not the format the Chromium expected.<\/p>\n<p>The new 0.0.18 version merged a <a href=\"https:\/\/github.com\/elFarto\/nvidia-vaapi-driver\/pull\/443\" target=\"_blank\" rel=\"noopener\">PR<\/a> that makes its <b>direct backend<\/b> output compatible with Chromium.<\/p>\n<p>It works by exporting multi-plane YUV surfaces from the NVIDIA driver as a single dma-buf, with all planes using the same DRM modifier that Chromium expects.<\/p>\n<div id=\"attachment_51975\" style=\"width: 620px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/09\/chrome-nv-vaapi.webp\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-51975\" class=\"size-large wp-image-51975\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/09\/chrome-nv-vaapi-700x443.webp\" alt=\"\" width=\"610\" height=\"386\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/09\/chrome-nv-vaapi-700x443.webp 700w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/09\/chrome-nv-vaapi-300x190.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/09\/chrome-nv-vaapi-768x486.webp 768w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/09\/chrome-nv-vaapi.webp 1453w\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" \/><\/a><p id=\"caption-attachment-51975\" class=\"wp-caption-text\">NVIDIA GPU decoding Youtube video in Ubuntu with Google Chrome<\/p><\/div>\n<p>So, after installed the driver and enable via <code>LIBVA_DRIVER_NAME=nvidia<\/code> environment, you can enjoy NVIDIA GPU hardware accelerated video decoding in Google Chrome or Chromium by starting browser with <code>VaapiOnNvidiaGPUs<\/code> flag.<\/p>\n<pre>LIBVA_DRIVER_NAME=nvidia google-chrome \\\r\n  --enable-features=AcceleratedVideoDecodeLinuxGL,VaapiOnNvidiaGPUs \\\r\n  --ignore-gpu-blocklist \\\r\n  --use-gl=angle --use-angle=gl<\/pre>\n<p>While GNOME, KDE Plasma and other Linux Desktops with Wayland also need <code>--ozone-platform=wayland<\/code>. So the command to specify environment variable and start Chrome\/Chromium could be:<\/p>\n<pre>LIBVA_DRIVER_NAME=nvidia google-chrome \\\r\n  --enable-features=AcceleratedVideoDecodeLinuxGL,VaapiOnNvidiaGPUs \\\r\n  --ignore-gpu-blocklist \\\r\n  --use-gl=angle --use-angle=gl --ozone-platform=wayland<\/pre>\n<p>For chromium and its based browsers, replace <code>google-chrome<\/code> in command accordingly.<\/p>\n<p>Other changes in NVIDIA VA-API Driver 0.0.18 include:<\/p>\n<ul>\n<li>Fix HEVC decoding artifacts caused by incorrect VA-API-to-NVDEC parameter translation.<\/li>\n<li>Fix NVDEC decoder initialization with invalid dimensions.<\/li>\n<li>Fix leaked GPU resources when surface creation fails.<\/li>\n<li>Fix a possible crash when destroying a decoder.<\/li>\n<li>Fix an AV1 out-of-memory crash.<\/li>\n<li>Fix unsafe decoder configuration initialization.<\/li>\n<li>Optimize NV12\/P010 to ARGB conversion.<\/li>\n<li>Remove wrong information in README.md.<\/li>\n<\/ul>\n<h3>Get NVIDIA VA-API Driver 0.0.18<\/h3>\n<p>The official release note as well as the source tarball are available in Github project page via the link below:<\/p>\n<div class=\"wp-block-buttons aligncenter\">\n<div class=\"wp-block-button is-style-fill\"><a class=\"wp-block-button__link has-vivid-cyan-blue-to-vivid-purple-gradient-background has-text-color has-background\" href=\"https:\/\/github.com\/elFarto\/nvidia-vaapi-driver\/releases\/tag\/v0.0.18\" target=\"_blank\" rel=\"noreferrer noopener\">NVIDIA VA-API Driver 0.0.18<\/a><\/div>\n<\/div>\n<p>Besides building from source, many Linux Distributions have the driver available in their system repositories, though it is often outdated.<\/p>\n<p>For Ubuntu 26.04, Ubuntu 24.04, Ubuntu 22.04, I&#8217;ve uploaded the new version into this <a href=\"https:\/\/launchpad.net\/~ubuntuhandbook1\/+archive\/ubuntu\/nvidia-vaapi\" target=\"_blank\">unofficial PPA<\/a> for 64-bit X86 and ARM computers.<\/p>","protected":false},"excerpt":{"rendered":"<p>NVIDIA VA-API driver, the free open-source video acceleration API implementation using NVIDIA NVDEC, released new 0.0.18 version yesterday. The new version finally makes NVIDIA GPU accelerated video decoding usable in Linux with Chrome \/ Chromium web browser.<\/p>\n","protected":false},"author":1,"featured_media":38385,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[654,656],"class_list":["post-51974","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news","tag-hardware-acceleration","tag-nvidia"],"_links":{"self":[{"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/posts\/51974","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/comments?post=51974"}],"version-history":[{"count":0,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/posts\/51974\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/media\/38385"}],"wp:attachment":[{"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/media?parent=51974"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/categories?post=51974"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/tags?post=51974"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}