6600's HDMI audio crackles when GPU is only lightly loaded
I'm not at all sure whether this is the right place to report this, if not, I'd appreciate it if you could point me in the right direction.
Hardware description:
- CPU: AMD Ryzen 7600X
- MB: ASUS TUF Gaming B650M-PLUS Wifi
- (d)GPU, problematic:
03:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 23 [Radeon RX 6600/6600 XT/6600M] [1002:73ff] (rev c7)
- (i)GPU, fine:
6e:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Raphael [1002:164e] (rev c7)
- System Memory: 32 GB
- Display(s): Yamaha RX-V771 receiver to Epson EH-TW7100 projector (1080p@60) on the 6600; BenQ GW2250HM monitor (1080p@60) on the iGPU
- Type of Display Connection: HDMI
System information:
- Distro name and Version: Ubuntu 22.04.3
- Kernel version: tried 6.2 (Ubuntu 22.04 HWE-lowlatency), 6.4.12 (via Mainline repo), 6.5 (Ubuntu 22.04 OEM), all with preempt=full, 6.4+ with amd_pstate=active
Brief summary of the problem:
The HDMI audio output of the 6600 is fine on the desktop, say Firefox playing a YouTube video, as well as in demanding games (= ones where it has to work to get 60 FPS, if that). In games that should pose no problem whatsoever, the audio crackles. Sometimes more, sometimes less, but it's there. My main test case right now is the Steam version of Ori and the Blind Forest, because there even the title menu music crackles reproducibly, but any older/indie game will do: Overcooked, Kingdom Two Crowns, ...
I suspected Pipewire at first, but I tried PulseAudio (with and without tsched) as well as bare ALSA, no change. Various kernels listed above, no change. Setting the governor and EPP to performance may or may not improve it a bit for a while. It's not WINE/Proton, native games do it, too. Other sources (e.g. Squeezebox, Chromecast) are unaffected, so it isn't the receiver, speakers, or the cables in between. The iGPU's HDMI audio is clean as well.
After weeks of trial and error, I found something that helps: putting some more load on the GPU. By which I mean, I start Overcooked 2 as well, output on the second seat but also rendering on the (primary seat's) 6600, presto, working HDMI audio.
Hypothesis: The power management on the 6600 clocks down so far the audio portion of the card is adversely affected, or something of that sort.
I'm sure there are more elegant ways to make sure the 6600 doesn't get so bored that the audio suffers; I'd really appreciate a more elegant workaround, if not a fix.