Posted on 2 mins read
tl;dr: Install Intel Media Driver and configure Chromium flags to enable hardware accelerated video decoding for VP9.

If you're using Chromium on Linux with an Intel integrated GPU and noticing high CPU usage during YouTube playback, you're probably missing hardware video acceleration. Here's how to fix it.

Requirements

  • Intel GPU (Broadwell or newer for VP9 support)
  • Arch Linux (or similar distro)
  • Wayland session

Step 1: Install Intel Media Driver

sudo pacman -S intel-media-driver libva-utils

Verify VAAPI is working:

vainfo

You should see VP9 profiles listed:

VAProfileVP9Profile0            : VAEntrypointVLD
VAProfileVP9Profile2            : VAEntrypointVLD

Step 2: Configure Chromium Flags

Edit ~/.config/chromium-flags.conf:

--ozone-platform=wayland
--enable-features=VaapiVideoDecoder,VaapiVideoEncoder
--ignore-gpu-blocklist
--enable-zero-copy
--enable-gpu-rasterization

Important: Do NOT add --use-gl or --use-angle flags. Let Chromium auto-select the backend.

Step 3: Restart Chromium

Close all Chromium windows and reopen. Verify at chrome://gpu:

  • Video Decode: Hardware accelerated
  • Video Encode: Hardware accelerated

Step 4: Force VP9 on YouTube (Optional)

If your GPU doesn't support AV1 (pre-11th gen Intel), install enhanced-h264ify and block AV1/H.264 to force VP9.

Verify It's Working

  • Play a YouTube video
  • Run intel_gpu_top - the "Video" engine should show activity
  • Right-click video → "Stats for nerds" → Codecs should show vp09.xxx

Troubleshooting

If chrome://gpu shows everything disabled:

  • Clear GPU cache: rm -rf ~/.config/chromium/Default/GPUCache ~/.config/chromium/ShaderCache
  • Remove any --use-gl flags from your config
  • Test with a fresh profile: chromium --user-data-dir=/tmp/test

Hardware Support Reference

Intel GenCodecs with HW Decode
Broadwell (5th)H.264, VP8
Skylake-Comet Lake (6th-10th)H.264, H.265, VP8, VP9
Tiger Lake+ (11th+)H.264, H.265, VP8, VP9, AV1