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

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

Troubleshooting

If chrome://gpu shows everything disabled:

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

Hardware Support Reference

Intel Gen Codecs 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