Audio Issues (Fedora 40/41 + Proton)

Hello,
Been running Fedora 40, while playing some games via Steam (tried Proton 9.something, 8, experimental) while using Firefox and Discord simultaneously. After a while, my audio turns off (crashes) completely. If I close the game, the audio returns but sounds like from a tin can and is very crackly. If I close all applications and start them again, it returns to normal.

Can I reproduce it?
By switching on and off “Optimize for headphones” in some games, the audio crashes again and stops any running YouTube videos.
What this optimization exactly does is something I couldn’t find any documentation for. (In this case Guild Wars 1)

What have I tried?

  • Looked for new updates.
  • Tried different Proton versions.
  • Checked if the problem occurs on Windows 11 (does not).
  • I’ve tried the linked fix, but it didn’t work → Wine/Proton with Pipewire Sound Stutters | Pipewire |
  • PROTON_USE_WINED3D=1 PROTON_NO_ESYNC=1 %command% was added to Steam
  • Completely clean install of Fedora 40
  • Installed Fedora 41

What does work to an extend is, that I can use the command:
systemctl --user restart pipewire pipewire-pulse wireplumber
This allows me to F5 the video or restart Discord, avoiding the crackling glitches.

Does anyone have an idea how I could potentially fix the issue?
Thank you!

1 Like

Can you provide some additional information about your system.
fpaste --sysinfo-audio --printonly

please post that using the preformatted text </>

thanks

2 Likes

That will reproduce it that easily? (GW1 → Settings → Optimize for headphones → (sound stops)

I haven’t tried that setting, but think I can get GW1 downloaded and try that in the near future.

I’m thinking it does some Headphone Mode to the Windows audio system which then “does something” (not sure if Vista+ is doing something like emulating a concert hall/multiple speakers/emulate 5.1/7.1 to game stuff). If it is doing some driver-side Headphone mode, it’s possible Wine knows how to handle that, passes it over to ALSA, and somewhere between ALSA and Pipewire that breaks.


One idea is to set GW1’s Wine prefix to winxp; I think that does something different to the audio system for Windows apps.

Another is some OpenAL wrapper (DSOAL or something like that); I recall that working fine in Wine and GW1 with a dll override but didn’t notice a sound difference.

Both of those would be workarounds and I’d still be curious to what’s actually happening; that’s the last setting I would expect to take out a sound system :stuck_out_tongue:

1 Like

Sure thing, please find the info below.

Gathering system info ....... 
=== fpaste 0.5.0.0 System Information ===
* OS Release (cat /etc/*-release | uniq):
     Fedora release 41 (Forty One)
     NAME="Fedora Linux"
     VERSION="41 (Workstation Edition)"
     RELEASE_TYPE=stable
     ID=fedora
     VERSION_ID=41
     VERSION_CODENAME=""
     PLATFORM_ID="platform:f41"
     PRETTY_NAME="Fedora Linux 41 (Workstation Edition)"
     ANSI_COLOR="0;38;2;60;110;180"
     LOGO=fedora-logo-icon
     CPE_NAME="cpe:/o:fedoraproject:fedora:41"
     DEFAULT_HOSTNAME="fedora"
     HOME_URL="https://fedoraproject.org/"
     DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f41/system-administrators-guide/"
     SUPPORT_URL="https://ask.fedoraproject.org/"
     BUG_REPORT_URL="https://bugzilla.redhat.com/"
     REDHAT_BUGZILLA_PRODUCT="Fedora"
     REDHAT_BUGZILLA_PRODUCT_VERSION=41
     REDHAT_SUPPORT_PRODUCT="Fedora"
     REDHAT_SUPPORT_PRODUCT_VERSION=41
     SUPPORT_END=2025-05-13
     VARIANT="Workstation Edition"
     VARIANT_ID=workstation
     Fedora release 41 (Forty One)
     
* Kernel (uname -r):
     6.11.5-300.fc41.x86_64
     
* Kernel cmdline (cat /proc/cmdline):
     BOOT_IMAGE=(hd0,gpt2)/vmlinuz-6.11.5-300.fc41.x86_64 root=UUID=599c6e4f-e483-4e82-9740-6da5edc52baa ro rootflags=subvol=root rd.luks.uuid=luks-b1a734dd-5232-4881-94d9-c17124a8b07c rhgb quiet
     
* PCI Audio devices (lspci |  grep -i -E 'audio' | cut -b1-7 | xargs -i lspci -vnnks {} | grep -v "<access denied>"):
     00:1f.3 Multimedia audio controller [0401]: Intel Corporation Meteor Lake-P HD Audio Controller [8086:7e28] (rev 20)
     	Subsystem: Lenovo Device [17aa:50e1]
     	Flags: bus master, fast devsel, latency 64, IRQ 217, IOMMU group 13
     	Memory at 4039cc0000 (64-bit, non-prefetchable) [size=16K]
     	Memory at 4039000000 (64-bit, non-prefetchable) [size=2M]
     	Kernel driver in use: sof-audio-pci-intel-mtl
     	Kernel modules: snd_hda_intel, snd_sof_pci_intel_mtl
     
     
* Audio devices (cat /proc/asound/cards):
      0 [sofhdadsp      ]: sof-hda-dsp - sof-hda-dsp
                           LENOVO-21M70054GE-ThinkPadE14Gen6
     
* User audio services (systemctl --user --no-pager status wireplumber pipewire* | sed "s/$(hostname)/ahost/"):
     ● wireplumber.service - Multimedia Service Session Manager
          Loaded: loaded (/usr/lib/systemd/user/wireplumber.service; enabled; preset: enabled)
         Drop-In: /usr/lib/systemd/user/service.d
                  └─10-timeout-abort.conf
          Active: active (running) since Wed 2024-10-30 10:02:05 CET; 3h 12min ago
      Invocation: 7b5608ca9a314921bee2c6a7a1651a70
        Main PID: 6390 (wireplumber)
           Tasks: 9 (limit: 37623)
          Memory: 7.4M (peak: 7.9M)
             CPU: 231ms
          CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/wireplumber.service
                  └─6390 /usr/bin/wireplumber
     
     Oct 30 10:02:05 ahost systemd[5872]: Started wireplumber.service - Multimedia Service Session Manager.
     Oct 30 10:02:05 ahost wireplumber[6390]: [0:03:27.031845987] [6390]  INFO Camera camera_manager.cpp:325 libcamera v0.3.2
     
     ● pipewire-pulse.socket - PipeWire PulseAudio
          Loaded: loaded (/usr/lib/systemd/user/pipewire-pulse.socket; enabled; preset: enabled)
          Active: active (running) since Wed 2024-10-30 10:02:03 CET; 3h 12min ago
      Invocation: 594522fbe5204199a03c5c9ea0e27efa
        Triggers: ● pipewire-pulse.service
          Listen: /run/user/1000/pulse/native (Stream)
          CGroup: /user.slice/user-1000.slice/user@1000.service/app.slice/pipewire-pulse.socket
     
     Oct 30 10:02:03 ahost systemd[5872]: Listening on pipewire-pulse.socket - PipeWire PulseAudio.
     
     ● pipewire-pulse.service - PipeWire PulseAudio
          Loaded: loaded (/usr/lib/systemd/user/pipewire-pulse.service; disabled; preset: disabled)
         Drop-In: /usr/lib/systemd/user/service.d
                  └─10-timeout-abort.conf
          Active: active (running) since Wed 2024-10-30 10:02:05 CET; 3h 12min ago
      Invocation: 0e23bb5fe69f4e9a95c2406289e6643e
     TriggeredBy: ● pipewire-pulse.socket
        Main PID: 6391 (pipewire-pulse)
           Tasks: 3 (limit: 37623)
          Memory: 11.5M (peak: 17.6M)
             CPU: 2.057s
          CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/pipewire-pulse.service
                  └─6391 /usr/bin/pipewire-pulse
     
     Oct 30 10:02:05 ahost systemd[5872]: Started pipewire-pulse.service - PipeWire PulseAudio.
     
     ● pipewire.service - PipeWire Multimedia Service
          Loaded: loaded (/usr/lib/systemd/user/pipewire.service; disabled; preset: disabled)
         Drop-In: /usr/lib/systemd/user/pipewire.service.d
                  └─00-uresourced.conf
                  /usr/lib/systemd/user/service.d
                  └─10-timeout-abort.conf
          Active: active (running) since Wed 2024-10-30 10:02:05 CET; 3h 12min ago
      Invocation: 9fdbbb80520f4ec18f52c940581a1a78
     TriggeredBy: ● pipewire.socket
        Main PID: 6389 (pipewire)
           Tasks: 3 (limit: 37623)
          Memory: 8.3M (peak: 9.3M)
             CPU: 623ms
          CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/pipewire.service
                  └─6389 /usr/bin/pipewire
     
     Oct 30 10:02:05 ahost systemd[5872]: Started pipewire.service - PipeWire Multimedia Service.
     Oct 30 13:13:54 ahost pipewire[6389]: pw.node: (alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__Headphones__sink-56) graph xrun not-triggered (0 suppressed)
     Oct 30 13:13:54 ahost pipewire[6389]: pw.node: (alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__Headphones__sink-56) xrun state:0x7f37b2def008 pending:1/1 s:11032274457868 a:11032274468065 f:11032274492200 waiting:10197 process:24135 status:triggered
     
     ● pipewire.socket - PipeWire Multimedia System Sockets
          Loaded: loaded (/usr/lib/systemd/user/pipewire.socket; enabled; preset: enabled)
          Active: active (running) since Wed 2024-10-30 10:02:03 CET; 3h 12min ago
      Invocation: 9e07c04c071249198e4ee8b306821d3e
        Triggers: ● pipewire.service
          Listen: /run/user/1000/pipewire-0 (Stream)
                  /run/user/1000/pipewire-0-manager (Stream)
          CGroup: /user.slice/user-1000.slice/user@1000.service/app.slice/pipewire.socket
     
     Oct 30 10:02:03 ahost systemd[5872]: Listening on pipewire.socket - PipeWire Multimedia System Sockets.
1 Like

Added f40, f41

In this case allow me to describe to you in detail how to reproduce it there exactly. I will try if I can use your workarounds in the meantime and report back, if it works.

Over longer periods of time:
If you just play a long instance + listen to a YouTube video the sound will cut out or crackle/glitch on it’s own. If I then add or remove the checkmark from Optimize for headphones it restores the sound sometimes. This usually breaks a bit later anyhow again and can only be restored entirely by restarting GW1.

The quick replication:
If you boot up GW1 and have a video for verification running on the side, add and remove (basically spam this option) and the sound will crash.