Chrome GPU Hardware Acceleration Fix — AMD RX 9070 XT (RDNA4) on CachyOS

System

  • GPU: AMD Radeon RX 9070 XT (RADV GFX1201) + AMD 9950X3D iGPU (RDNA3 Raphael)
  • Driver: mesa 26.0.5 (RADV)
  • OS: CachyOS, kernel 7.0.1-1-cachyos
  • Display server: KDE Plasma Wayland
  • Render nodes: /dev/dri/renderD128 = iGPU, /dev/dri/renderD129 = 9070 XT

Problem

Chrome showed:

  • Video Encode: Software only. Hardware acceleration disabled
  • Skia Backend: GaneshGL (not Vulkan)
  • GPU1: *ACTIVE on iGPU instead of dGPU
  • Blue artifact GPU crashes (RDNA4 display controller timeout: REG_WAIT timeout optc31_disable_crtc)

Root Cause

Two --enable-features lines in ~/.config/chrome-flags.conf. Chrome only honors the last --enable-features flag — all previous ones are silently dropped.

# Line 1 (DROPPED by Chrome):
--enable-features=VaapiVideoDecoder,AcceleratedVideoDecodeLinuxGL,...VaapiIgnoreDriverChecks,...

# Line 2 (kept, overrides Line 1):
--enable-features=Vulkan,VulkanFromANGLE,DefaultANGLEVulkan

This caused VA-API video decode/encode features to be completely lost.

Fix

Merge all features into a single --enable-features line.

~/.config/chrome-flags.conf

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

Result

Canvas:       Hardware accelerated
Video Decode: Hardware accelerated (h264, vp9, hevc, av1)
Video Encode: Hardware accelerated (h264, av1)
Vulkan:       Enabled
WebGL:        Hardware accelerated
WebGPU:       Hardware accelerated
Skia Backend: GaneshVulkan
GPU0:         AMD Radeon RX 9070 XT *ACTIVE

Key Notes

  • Never use multiple --enable-features lines — Chrome silently drops all but the last one
  • --use-angle=vulkan is preferred over --use-angle=gl for RDNA4 (better stability, no blue artifacts)
  • --ozone-platform-hint=auto (not --ozone-platform=wayland) avoids the Vulkan incompatibility warning
  • --render-node-override may appear in command line from external sources (KDE/desktop file) — Chrome still picks the correct GPU based on display connection
  • Harmless warnings remain: '--ozone-platform=wayland' is not compatible with Vulkan and eglCreateContext: Requested version is not supported

Verification

  1. Open chrome://gpu
  2. Check Graphics Feature Status — all should show “Hardware accelerated”
  3. Check Video Acceleration Information — should list decode/encode codecs
  4. Check Skia Backend — should be GaneshVulkan
  5. Check GPU0 — should show 9070 XT with *ACTIVE
  6. Check GPU process crash count — should be 0

Rollback

If issues arise, revert to ANGLE OpenGL:

--use-gl=angle
--use-angle=gl
--enable-features=VaapiVideoDecoder,AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL,AcceleratedVideoEncoder,VaapiIgnoreDriverChecks,UseMultiPlaneFormatForHardwareVideo

Leave a Reply

Your email address will not be published. Required fields are marked *