Audio in games cuts out after several seconds

I’ve been having trouble with some games losing audio since I installed Tumbleweed on this laptop. Occasionally, the audio will just stop working. Recently, it’s gotten really bad. It happens every 5-30 seconds or so when I’m trying to play a game. This is Steam games, and non-Steam games, though all running via Proton or Wine (Lutris). I can restore the audio by going in the KDE “Configure Audio Devices” screen and switch the audio playback device to “Pro Audio”, which is the HDMI output for my GPU, than switching it back.

I’m not really sure what info to provide, but I can provide some of what other requested from other users who’ve had audio problems.

~inxi -MSAa
System:
Host: Stealth16 Kernel: 6.14.6-1-default arch: x86_64 bits: 64 compiler: gcc
v: 14.2.1 clocksource: tsc avail: acpi_pm
parameters: BOOT_IMAGE=/boot/vmlinuz-6.14.6-1-default
root=UUID=f08edadd-5c92-45e5-84b0-eadb4d3fce2e
resume=/dev/disk/by-uuid/6dca689c-b7a3-4186-a511-b9b03033b593
splash=silent quiet security=apparmor mitigations=auto
rd.driver.blacklist=nouveau
Desktop: KDE Plasma v: 6.3.5 tk: Qt v: N/A info: frameworks v: 6.14.0
wm: kwin_x11 tools: avail: i3lock,xscreensaver vt: 2 dm: SDDM
Distro: openSUSE Tumbleweed 20250515
Machine:
Type: Laptop System: Micro-Star product: Stealth 16 AI Studio A1VHG
v: REV:1.0 serial: Chassis: type: 10
serial:
Mobo: Micro-Star model: MS-15F3 v: REV:1.0 serial:
part-nu: 15F3.1 uuid: UEFI: American Megatrends LLC.
v: E15F3IMS.107 date: 04/19/2024
Audio:
Device-1: Intel Meteor Lake-P HD Audio vendor: Micro-Star MSI
driver: sof-audio-pci-intel-mtl
alternate: snd_hda_intel,snd_sof_pci_intel_mtl bus-ID: 0000:00:1f.3
chip-ID: 8086:7e28 class-ID: 0401
API: ALSA v: k6.14.6-1-default status: kernel-api with: aoss
type: oss-emulator tools: alsactl,alsamixer,amixer
Server-1: PipeWire v: 1.4.2 status: active with: 1: pipewire-pulse
status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
4: pw-jack type: plugin tools: pactl,pw-cat,pw-cli,wpctl

sudo journalctl -b | grep firmware
[sudo] password for root:
May 19 07:51:49 Stealth16 kernel: psmouse serio1: elantech: assuming hardware version 4 (with firmware version 0x4f5001)
May 19 07:51:49 Stealth16 kernel: i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/mtl_dmc.bin (v2.23)
May 19 07:51:50 Stealth16 kernel: i915 0000:00:02.0: [drm] GT0: GuC firmware i915/mtl_guc_70.bin version 70.44.1
May 19 07:51:50 Stealth16 kernel: i915 0000:00:02.0: [drm] GT1: GuC firmware i915/mtl_guc_70.bin version 70.44.1
May 19 07:51:50 Stealth16 kernel: i915 0000:00:02.0: [drm] GT1: HuC firmware i915/mtl_huc_gsc.bin version 8.5.4
May 19 07:51:50 Stealth16 kernel: i915 0000:00:02.0: [drm] GT1: Loaded GSC firmware i915/mtl_gsc_1.bin (cv1.0, r102.1.15.1926, svn 1)
May 19 12:51:51 Stealth16 systemd[1]: Clear Stale Hibernate Storage Info was skipped because of an unmet condition check (ConditionPathExists=/sys/firmware/efi/efivars/HibernateLocation-8cf2644b-4b0b-428f-9387-6d876050dc67).
May 19 12:51:52 Stealth16 systemd[1]: Clear Stale Hibernate Storage Info was skipped because of an unmet condition check (ConditionPathExists=/sys/firmware/efi/efivars/HibernateLocation-8cf2644b-4b0b-428f-9387-6d876050dc67).
May 19 12:51:52 Stealth16 systemd[1]: Clear Stale Hibernate Storage Info was skipped because of an unmet condition check (ConditionPathExists=/sys/firmware/efi/efivars/HibernateLocation-8cf2644b-4b0b-428f-9387-6d876050dc67).
May 19 12:51:52 Stealth16 kernel: Bluetooth: hci0: Found device firmware: intel/ibt-0291-0291.sfi
May 19 12:51:52 Stealth16 kernel: iwlwifi 0000:2c:00.0: loaded firmware version 96.44729d4e.0 gl-c0-fm-c0-96.ucode op_mode iwlmvm
May 19 12:51:52 Stealth16 kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: Loaded firmware library: ADSPFW, version: 2.12.0.1
May 19 12:51:52 Stealth16 kernel: sof-audio-pci-intel-mtl 0000:00:1f.3: Booted firmware version: 2.12.0.1
May 19 12:51:53 Stealth16 systemd[1]: Clear Stale Hibernate Storage Info was skipped because of an unmet condition check (ConditionPathExists=/sys/firmware/efi/efivars/HibernateLocation-8cf2644b-4b0b-428f-9387-6d876050dc67).
May 19 12:51:54 Stealth16 NetworkManager[1586]: [1747677114.5209] manager[0x5583419e6c40]: monitoring kernel firmware directory ‘/lib/firmware’.
May 19 12:52:00 Stealth16 systemd[1]: Startup finished in 6.215s (firmware) + 8.962s (loader) + 1.063s (kernel) + 2.687s (initrd) + 9.029s (userspace) = 27.959s.

Please help me figure this out. It’s gotten really bad.

Assuming you never did run into this not running via Proton or Wine (Lutris) the problem seems to be on the edge of KDE and Proton / Wine (Lutris).

How did this problem start? Have it been “always” this way?

Can you try as another user? Quite some audio software is running in user context.

It has always been this way. Initially though, the sound in games would cut out anytime any other application produced a sound (Discord voip, video in browser, even a Steam notification). Or at least that’s what I thought the problem was. It seemed to get better over time. I assumed it was changes in pipewire or something with an update. But I don’t know. I didn’t spend a ton of time testing it, because it was still playable, just a bit annoying. Recently, I tried to get Marvel Rivals running, and in doing so, I discovered that I was missing two NVIDIA files: nvidia-compute and nvidia-common IIRC. Those installed at least nvidia-modprobe, but maybe one other prerequisite file. Of course, there was a daily update at the same time. But that’s when it got to where it was every few seconds. Previously, I could play a game for a long time, and the audio would only stop sometimes if I alt-tabbed out of the game for some reason. Now, the audio stops on its own.

I cannot try it with another user as Steam, and all of my games are installed as user files, in my home directory.

I found different, unusual behavior. I was testing other games while I had a video playing. When the sound went out in the game, the video just stopped with the loading ring. When I fixed the sound (as described above), the video started playing again, but the sound immediately went out and the video started streaming again. When I closed the game, and fixed the sound, the video would play fine. If I was playing a game, and the sound cut out, I could exit the game, and play videos without problem, and working audio. But if I then launch a game again, the sound would still be broken.

Very strange.

You could run qpwgraph and see if something change if the audio disappears.

For more debug suggestions, see:

Feel free to post logs you gets here, use Preformatted text for formatting the log data:

Screenshot_20250520_203329

For larger logs you can use https://paste.opensuse.org/

Whoa! That’s cool. And interesting.

I found through that application that when the sound is working, the “ [audio stream #1]” “output_FL” and “output_FR” are linked to the “Meteor Lake-P HD Audio Controller Speaker” “playback_FL/FR”, and when it’s not working, those links get broken. Though the link does appear broken every time. However, if I disconnect that link, and reconnect it, the sound comes back.

I’ll dig into that troubleshooting page and report back.

Thank you for the info on how to post logs. I searched quite a bit looking for that information before I posted, but I couldn’t find it. In the old forums, there used to be pinned topics with that info.

I ran those first 4 commands on the Troubleshooting page for Pipewire, and here are the results:

journalctl -xe | grep pipewire
Hint: You are currently not seeing messages from other users and the system.
      Users in the 'systemd-journal' group can see all messages. Pass -q to
      turn off this notice.
May 20 17:30:23 Stealth16 pipewire[50511]: spa.alsa: hw:0,31p: (0 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:30:25 Stealth16 pipewire[50511]: spa.alsa: hw:0,31p: (46 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:30:27 Stealth16 pipewire[50511]: spa.alsa: hw:0,31p: (46 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:30:29 Stealth16 pipewire[50511]: spa.alsa: hw:0,31p: (46 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:36:32 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (0 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:36:50 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:37:07 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:37:25 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:37:43 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:38:01 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:38:19 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:38:36 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:38:54 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:38:54 Stealth16 pipewire[50511]: spa.alsa: hw:0,31p: (0 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:38:55 Stealth16 pipewire[50511]: spa.alsa: hw:0,0p: (0 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:38:57 Stealth16 pipewire[50511]: spa.alsa: hw:0,31p: (46 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:41:06 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (0 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:41:24 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:41:42 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:42:00 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:42:18 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:42:36 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:42:53 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:43:11 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:43:29 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:43:47 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:44:05 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:44:23 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:44:41 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:44:59 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:45:17 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:45:34 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:45:52 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:46:10 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:46:28 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:46:46 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:47:04 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:47:22 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:47:40 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:47:57 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:48:15 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:48:33 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:48:51 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:49:09 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:49:27 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:49:45 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:50:02 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:50:20 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:50:38 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:50:56 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:51:14 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:51:32 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:51:50 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:52:07 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:52:25 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:52:43 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:53:01 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:53:19 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:53:37 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:53:55 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:54:12 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:54:30 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:54:48 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:55:06 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:55:24 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:55:42 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:59:30 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (68 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 17:59:47 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:00:05 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:00:23 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:00:41 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:00:59 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:01:16 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:01:34 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:01:52 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:02:10 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:02:28 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:03:40 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (99 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:03:58 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:04:16 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:04:34 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:04:52 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:05:10 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:05:27 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:05:45 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:06:03 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:06:21 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:06:39 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:06:56 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:07:04 Stealth16 pipewire[50511]: spa.alsa: hw:0,31p: (0 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:07:04 Stealth16 pipewire[50511]: spa.alsa: hw:0,0p: (0 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:07:06 Stealth16 pipewire[50511]: spa.alsa: hw:0,31p: (46 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:07:08 Stealth16 pipewire[50511]: spa.alsa: hw:0,31p: (46 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:07:10 Stealth16 pipewire[50511]: spa.alsa: hw:0,31p: (46 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:07:11 Stealth16 pipewire[50511]: spa.alsa: hw:0,0p: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:07:12 Stealth16 pipewire[50511]: spa.alsa: hw:0,31p: (46 suppressed) snd_pcm_avail after recover: Broken pipe
journalctl -xe | grep wireplumber
Hint: You are currently not seeing messages from other users and the system.
      Users in the 'systemd-journal' group can see all messages. Pass -q to
      turn off this notice.
May 20 18:07:13 Stealth16 wireplumber[50512]: wp-event-dispatcher: <WpAsyncEventHook:0x5585eabafb10> failed: <WpSiStandardLink:0x5585eae7a8e0> link failed: some node was destroyed before the link was created
journalctl --user-unit=pipewire --user-unit=wireplumber --user-unit=pipewire-pulse -f
Hint: You are currently not seeing messages from the system.
      Users in the 'systemd-journal' group can see all messages. Pass -q to
      turn off this notice.
May 20 18:07:08 Stealth16 pipewire[50511]: spa.alsa: hw:0,31p: (46 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:07:10 Stealth16 pipewire[50511]: spa.alsa: hw:0,31p: (46 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:07:11 Stealth16 pipewire[50511]: spa.alsa: hw:0,0p: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:07:12 Stealth16 pipewire[50511]: spa.alsa: hw:0,31p: (46 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:07:13 Stealth16 wireplumber[50512]: wp-event-dispatcher: <WpAsyncEventHook:0x5585eabafb10> failed: <WpSiStandardLink:0x5585eae7a8e0> link failed: some node was destroyed before the link was created
May 20 18:07:17 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (0 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:07:30 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:07:51 Stealth16 pipewire[50511]: spa.alsa: hw:0,31p: (0 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:07:51 Stealth16 pipewire[50511]: spa.alsa: hw:0,0p: (0 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:07:53 Stealth16 pipewire[50511]: spa.alsa: hw:0,31p: (46 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:08:19 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (0 suppressed) snd_pcm_avail after recover: Broken pipe
journalctl --user -u pipewire --user -u wireplumber --user -u pipewire-pulse -f
May 20 18:07:17 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (0 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:07:30 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:07:51 Stealth16 pipewire[50511]: spa.alsa: hw:0,31p: (0 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:07:51 Stealth16 pipewire[50511]: spa.alsa: hw:0,0p: (0 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:07:53 Stealth16 pipewire[50511]: spa.alsa: hw:0,31p: (46 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:08:19 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (0 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:08:37 Stealth16 pipewire[50511]: spa.alsa: hw:sofhdadspp: (375 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:08:40 Stealth16 pipewire[50511]: spa.alsa: hw:0,31p: (0 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:08:40 Stealth16 pipewire[50511]: spa.alsa: hw:0,0p: (0 suppressed) snd_pcm_avail after recover: Broken pipe
May 20 18:08:42 Stealth16 pipewire[50511]: spa.alsa: hw:0,31p: (46 suppressed) snd_pcm_avail after recover: Broken pipe

And BTW, those last two didn’t add any new messages when the sound cut out.

I take that back. The last two update with the following message as soon as sound drops:
spa.alsa: hw:sofhdadspp: (0 suppressed) snd_pcm_avail after recover: Broken pipe

But I don’t think that’s necessarily related, because that message was listed earlier in those logs, when sound was working fine. It might just be a status update that happens to show when the problem occurs.

Good you posted the output for debug commands incl. the commands itself.

I did run “journalctl -xe | grep pipewire” for my Tumbleweed system running audio but it did not see any message so it looks to me that these broken pipe messages are already something to worry about:

pipewire[50511]: spa.alsa: hw: snd_pcm_avail after recover: Broken pipe

Yes, I would be good to find in the logs something that happens on the moment the audio problem kicks in but fixing this broken pipe problem would already a good thing to do.

Not sure if I did any special settings but I would try Restoring PipeWire and Wireplumber settings to default.

Also: Is the problem limited to running via Proton or Wine (Lutris), i.e. can you reproduce the problem running audio without it?

1 Like

I will try to get some debug info tonight (getting ready for work now). I can’t figure out what app to use in the debug command, where is says, “”. Any suggestions?
PIPEWIRE_LOG_SYSTEMD=false PIPEWIRE_DEBUG=5 <app> 2>log

Yes. Only related to Proton/Wine. I ran the game Darkest Dungeon, and had audio for over 10 minutes without any dropout.

I found a solution. By searching on the above phrase, I found the following thread:
https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2739
In it, it was suggested to run the command:
pw-metadata -n settings 0 clock.force-quantum 512

That fixed the problem. I tried 1024, which also worked. I then tried 256, and while it worked, I had momentary little gaps in the audio at random times. So I decided to stick with 512. The person who suggested that solution said that if you have to go to 1024, then it’s possible that your machine just can’t handle the “required latency”. So, I suspect that wine adds latency, and that’s why non-wine games were working fine before making this change.

I hope this helps anybody else who might run into this problem.

Thanks for pointing me in the right direction @marel

1 Like

Well, it’s partially fixed. That command does, in fact, fix the problem. But it’s not permanent. I have to enter it every time I reboot. I have to figure out where to change that parameter, so the change will be permanent. I’ll post when I find it.

For now though, I can just run the above command before playing Wine/Proton games.

On how to make it permanent see:

Better not to edit pipewire.conf, instead create a .conf file and place it in the pipewire.conf.d directory/

1 Like

I created a file in /etc/pipewire/pipewire.conf.d called 15-clock-quantum.conf. The contents are:

context.properties = {
    default.clock.quantum  =       512
}

That sets the clock buffer size to 512 by default. I double-checked it, after rebooting, by running:
“pw-metadata -n settings”.

I thought it was solved. Then I tested it, and it hadn’t fixed it. I’ll have to do more reading of the pipewire docs. I think that somehow, even though I set the default to 512, something is overriding that when the system boots, or when a game launches, or something. So I need to figure out how to lock that value. But like I said, I’m sure it’s in the docs somewhere. I have a few hours tomorrow to look into it. I will update when I have the solution.

Maybe default.clock.min-quantum ? See man pipewire.conf.

1 Like

That appears to have been the solution. It seems like it’s working correctly, and when I check the settings after a fresh boot, it’s showing the cache set at 512.

Thank you.

This issue is solved.

1 Like