Corrupted AV1 video decoding on AMD with Mesa 24.1.4
System information
System:
Host: mamarley-laptop Kernel: 6.10.0-061000-generic arch: x86_64 bits: 64
compiler: gcc v: 14.1.0
Desktop: KDE Plasma v: 6.1.3 tk: Qt v: N/A wm: kwin_wayland dm: N/A
Distro: Ubuntu 24.10 (Oracular Oriole)
CPU:
Info: 8-core model: AMD Ryzen 7 7840U w/ Radeon 780M Graphics bits: 64
type: MT MCP arch: Zen 4 rev: 1 cache: L1: 512 KiB L2: 8 MiB L3: 16 MiB
Speed (MHz): avg: 646 high: 1499 min/max: 400/5132 cores: 1: 400 2: 400
3: 400 4: 400 5: 1395 6: 400 7: 1255 8: 1397 9: 1499 10: 400 11: 400 12: 400
13: 400 14: 400 15: 400 16: 400 bogomips: 105403
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
Graphics:
Device-1: AMD Phoenix1 vendor: Framework driver: amdgpu v: kernel
arch: RDNA-3 pcie: speed: 16 GT/s lanes: 16 ports: active: DP-3 off: eDP-1
empty: DP-1, DP-2, DP-4, DP-5, DP-6, DP-7, DP-8, Writeback-1
bus-ID: c1:00.0 chip-ID: 1002:15bf temp: 45.0 C
Device-2: Realtek Laptop Camera driver: uvcvideo type: USB rev: 2.0
speed: 480 Mb/s lanes: 1 bus-ID: 3-1:2 chip-ID: 0bda:5634
Device-3: Razer USA Gaming Webcam [Kiyo] driver: snd-usb-audio,uvcvideo
type: USB rev: 2.0 speed: 480 Mb/s lanes: 1 bus-ID: 7-1.1.2:14
chip-ID: 1532:0e03
Display: wayland server: Xwayland v: 24.1.1 compositor: kwin_wayland
driver: N/A display-ID: 0
Monitor-1: DP-3 res: 3840x2160 size: N/A
API: EGL v: 1.5 platforms: device: 0 drv: radeonsi device: 1 drv: swrast
surfaceless: drv: radeonsi wayland: drv: radeonsi x11: drv: radeonsi
inactive: gbm
API: OpenGL v: 4.6 compat-v: 4.5 vendor: amd mesa
v: 24.1.4-0ubuntu0~ppa0~24.10.0 glx-v: 1.4 direct-render: yes renderer: AMD
Radeon 780M (radeonsi gfx1103_r1 LLVM 18.1.8 DRM 3.57
6.10.0-061000-generic) device-ID: 1002:15bf display-ID: :0.0
API: Vulkan v: 1.3.283 surfaces: xcb,xlib,wayland device: 0
type: integrated-gpu driver: N/A device-ID: 1002:15bf device: 1 type: cpu
driver: N/A device-ID: 10005:0000
Describe the issue
After upgrading to Mesa 24.1.4, I get corrupted AV1 video decoding when VAAPI is used at least in Firefox and MPV. The attached screenshot below demonstrates what the output looks like. After a quick review of the commits between 24.1.3 and 24.1.4, b0d6e58d looked suspicious, so I tried reverting it and that worked around the problem, returning the correct decoding.
Regression
It worked properly in 24.1.3 and below.