You are not logged in.

#1 2025-08-18 15:54:40

poinu
Member
Registered: 2016-05-09
Posts: 15

No HDMI / DisplayPort audio on PipeWire + Nvidia drivers

Hi everyone,

I'm running Arch Linux with PipeWire and I can’t get audio output over the HDMI/DisplayPort device. The device and corresponding sink are detected, and I made sure it was unmuted as well, but I don't seem to be able to make it emit sounds.

Bluetooth audio works, and so does the 'Build-in Audio' when I plug a wired headset to my 3.5mm audio jack. This makes me think its something specific to the HDMI/DisplayPort device, perhaps something related to the Nvidia driver. In case it matters I have an old GTX1080 GPU.

I recently upgraded to Nvidia proprietary driver 580.76.05-4. I know the audio over DisplayPort was working fine at some point in the past, but I can't say for sure whether it was working right before upgrading since I switched from HDMI to DisplayPort just after the upgrade due to display issues with HDMI. Unfortunately I can't test if the audio works over HDMI either due to these issues (no video output).
In any case, I believe the audio device for HDMI & DisplayPort is the same.

Some info:

$ wpctl status
PipeWire 'pipewire-0' [1.4.7, user@host, cookie:3790928280]
 └─ Clients:
        32. xdg-desktop-portal                  [1.4.7, user@host, pid:1907]
        33. WirePlumber                         [1.4.7, user@host, pid:3515]
        34. pipewire                            [1.4.7, user@host, pid:3516]
        47. WirePlumber [export]                [1.4.7, user@host, pid:3515]
        64. Mutter                              [1.4.7, user@host, pid:1388]
        65. GNOME Settings                      [1.4.7, user@host, pid:4164]
        72. gnome-shell                         [1.4.7, user@host, pid:1388]
        73. GNOME Shell Volume Control          [1.4.7, user@host, pid:1388]
        74. GNOME Volume Control Media Keys     [1.4.7, user@host, pid:1510]
        75. Firefox                             [1.4.7, user@host, pid:1982]
        80. speech-dispatcher-dummy             [1.4.7, user@host, pid:4685]
        88. wpctl                               [1.4.7, user@host, pid:8982]

Audio
 ├─ Devices:
 │      48. GP104 High Definition Audio Controller [alsa]
 │      49. Built-in Audio                      [alsa]
 │  
 ├─ Sinks:
 │      35. Built-in Audio Digital Stereo (IEC958) [vol: 1.00]
 │  *   56. GP104 High Definition Audio Controller Digital Stereo (HDMI) [vol: 1.00]
 │  
 ├─ Sources:
 │      46. Built-in Audio Analog Stereo        [vol: 1.00]
 │  
 ├─ Filters:
 │  
 └─ Streams:
        67. GNOME Settings                                              
             66. monitor_FR     
             68. input_FR        < VG27A:monitor_FR	[active]
             69. monitor_FL     
             71. input_FL        < VG27A:monitor_FL	[active]
        81. speech-dispatcher-dummy                                     
             76. output_FL       > VG27A:playback_FL	[paused]
             77. output_FR       > VG27A:playback_FR	[paused]

Video
 ├─ Devices:
 │  
 ├─ Sinks:
 │  
 ├─ Sources:
 │  
 ├─ Filters:
 │  
 └─ Streams:

Settings
 └─ Default Configured Devices:
         0. Audio/Sink    alsa_output.pci-0000_01_00.1.hdmi-stereo
$ aplay -lL
null
    Discard all samples (playback) or generate zero samples (capture)
lavrate
    Rate Converter Plugin Using Libav/FFmpeg Library
samplerate
    Rate Converter Plugin Using Samplerate Library
speexrate
    Rate Converter Plugin Using Speex Resampler
jack
    JACK Audio Connection Kit
oss
    Open Sound System
pipewire
    PipeWire Sound Server
pulse
    PulseAudio Sound Server
speex
    Plugin using Speex DSP (resample, agc, denoise, echo, dereverb)
upmix
    Plugin for channel upmix (4,6,8)
vdownmix
    Plugin for channel downmix (stereo) with a simple spacialization
default
    Default ALSA Output (currently PipeWire Media Server)
sysdefault:CARD=PCH
    HDA Intel PCH, ALC1220 Analog
    Default Audio Device
front:CARD=PCH,DEV=0
    HDA Intel PCH, ALC1220 Analog
    Front output / input
surround21:CARD=PCH,DEV=0
    HDA Intel PCH, ALC1220 Analog
    2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=PCH,DEV=0
    HDA Intel PCH, ALC1220 Analog
    4.0 Surround output to Front and Rear speakers
surround41:CARD=PCH,DEV=0
    HDA Intel PCH, ALC1220 Analog
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=PCH,DEV=0
    HDA Intel PCH, ALC1220 Analog
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=PCH,DEV=0
    HDA Intel PCH, ALC1220 Analog
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=PCH,DEV=0
    HDA Intel PCH, ALC1220 Analog
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=PCH,DEV=0
    HDA Intel PCH, ALC1220 Digital
    IEC958 (S/PDIF) Digital Audio Output
usbstream:CARD=PCH
    HDA Intel PCH
    USB Stream Output
hdmi:CARD=NVidia,DEV=0
    HDA NVidia, VG27A
    HDMI Audio Output
hdmi:CARD=NVidia,DEV=1
    HDA NVidia, HDMI 1
    HDMI Audio Output
hdmi:CARD=NVidia,DEV=2
    HDA NVidia, HDMI 2
    HDMI Audio Output
hdmi:CARD=NVidia,DEV=3
    HDA NVidia, HDMI 3
    HDMI Audio Output
usbstream:CARD=NVidia
    HDA NVidia
    USB Stream Output
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC1220 Analog [ALC1220 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 1: ALC1220 Digital [ALC1220 Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 3: HDMI 0 [VG27A]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 9: HDMI 3 [HDMI 3]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
$ amixer -c1
Simple mixer control 'IEC958',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'IEC958',1
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'IEC958',2
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'IEC958',3
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
$ pactl list sinks
Sink #56
	State: IDLE
	Name: alsa_output.pci-0000_01_00.1.hdmi-stereo
	Description: GP104 High Definition Audio Controller Digital Stereo (HDMI)
	Driver: PipeWire
	Sample Specification: s32le 2ch 48000Hz
	Channel Map: front-left,front-right
	Owner Module: 4294967295
	Mute: no
	Volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB
	        balance 0.00
	Base Volume: 65536 / 100% / 0.00 dB
	Monitor Source: alsa_output.pci-0000_01_00.1.hdmi-stereo.monitor
	Latency: 0 usec, configured 0 usec
	Flags: HARDWARE DECIBEL_VOLUME LATENCY SET_FORMATS 
	Properties:
		alsa.card = "1"
		alsa.card_name = "HDA NVidia"
		alsa.class = "generic"
		alsa.components = "HDA:10de0083,14583717,00100100"
		alsa.device = "3"
		alsa.driver_name = "snd_hda_intel"
		alsa.id = "HDMI 0"
		alsa.long_card_name = "HDA NVidia at 0x3d080000 irq 17"
		alsa.mixer_name = "Nvidia GPU 83 HDMI/DP"
		alsa.name = "VG27A"
		alsa.resolution_bits = "16"
		alsa.subclass = "generic-mix"
		alsa.subdevice = "0"
		alsa.subdevice_name = "subdevice #0"
		alsa.sync.id = "00000000:00000000:00000000:00000000"
		api.alsa.card.longname = "HDA NVidia at 0x3d080000 irq 17"
		api.alsa.card.name = "HDA NVidia"
		api.alsa.path = "hdmi:1"
		api.alsa.pcm.card = "1"
		api.alsa.pcm.stream = "playback"
		audio.channels = "2"
		audio.position = "FL,FR"
		card.profile.device = "4"
		device.api = "alsa"
		device.class = "sound"
		device.icon_name = "audio-card-analog"
		device.id = "48"
		device.profile.description = "Digital Stereo (HDMI)"
		device.profile.name = "hdmi-stereo"
		device.routes = "1"
		factory.name = "api.alsa.pcm.sink"
		iec958.codecs = "[\"PCM\"]"
		media.class = "Audio/Sink"
		device.description = "GP104 High Definition Audio Controller"
		node.name = "alsa_output.pci-0000_01_00.1.hdmi-stereo"
		node.nick = "VG27A"
		node.pause-on-idle = "false"
		object.path = "alsa:acp:NVidia:4:playback"
		port.group = "playback"
		priority.driver = "696"
		priority.session = "696"
		factory.id = "19"
		clock.quantum-limit = "8192"
		client.id = "47"
		node.driver = "true"
		node.loop.name = "data-loop.0"
		library.name = "audioconvert/libspa-audioconvert"
		object.id = "56"
		object.serial = "56"
		node.max-latency = "16384/48000"
		api.alsa.period-size = "1024"
		api.alsa.period-num = "32"
		api.alsa.headroom = "0"
		api.acp.auto-port = "false"
		api.acp.auto-profile = "false"
		api.alsa.card = "1"
		api.alsa.split-enable = "true"
		api.alsa.use-acp = "true"
		api.dbus.ReserveDevice1 = "Audio1"
		api.dbus.ReserveDevice1.Priority = "-20"
		device.bus = "pci"
		device.bus_path = "pci-0000:01:00.1"
		device.enum.api = "udev"
		device.name = "alsa_card.pci-0000_01_00.1"
		device.nick = "HDA NVidia"
		device.plugged.usec = "3645505"
		device.product.id = "0x10f0"
		device.product.name = "GP104 High Definition Audio Controller"
		device.subsystem = "sound"
		sysfs.path = "/devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1"
		device.vendor.id = "0x10de"
		device.vendor.name = "NVIDIA Corporation"
		spa.object.id = "4"
		device.string = "1"
	Ports:
		hdmi-output-0: HDMI / DisplayPort (type: HDMI, priority: 5900, availability group: Legacy 1, available)
	Active Port: hdmi-output-0
	Formats:
		pcm

Sink #57
	State: SUSPENDED
	Name: alsa_output.pci-0000_00_1f.3.iec958-stereo
	Description: Built-in Audio Digital Stereo (IEC958)
	Driver: PipeWire
	Sample Specification: s32le 2ch 48000Hz
	Channel Map: front-left,front-right
	Owner Module: 4294967295
	Mute: no
	Volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB
	        balance 0.00
	Base Volume: 65536 / 100% / 0.00 dB
	Monitor Source: alsa_output.pci-0000_00_1f.3.iec958-stereo.monitor
	Latency: 0 usec, configured 0 usec
	Flags: HARDWARE HW_MUTE_CTRL DECIBEL_VOLUME LATENCY SET_FORMATS 
	Properties:
		alsa.card = "0"
		alsa.card_name = "HDA Intel PCH"
		alsa.class = "generic"
		alsa.components = "HDA:10ec1220,1458a0c3,00100101"
		alsa.device = "1"
		alsa.driver_name = "snd_hda_intel"
		alsa.id = "ALC1220 Digital"
		alsa.long_card_name = "HDA Intel PCH at 0x3d330000 irq 145"
		alsa.mixer_name = "Realtek ALC1220"
		alsa.name = "ALC1220 Digital"
		alsa.resolution_bits = "16"
		alsa.subclass = "generic-mix"
		alsa.subdevice = "0"
		alsa.subdevice_name = "subdevice #0"
		alsa.sync.id = "00000000:00000000:00000000:00000000"
		api.alsa.card.longname = "HDA Intel PCH at 0x3d330000 irq 145"
		api.alsa.card.name = "HDA Intel PCH"
		api.alsa.path = "iec958:0"
		api.alsa.pcm.card = "0"
		api.alsa.pcm.stream = "playback"
		audio.channels = "2"
		audio.position = "FL,FR"
		card.profile.device = "11"
		device.api = "alsa"
		device.class = "sound"
		device.icon_name = "audio-card-analog"
		device.id = "49"
		device.profile.description = "Digital Stereo (IEC958)"
		device.profile.name = "iec958-stereo"
		device.routes = "1"
		factory.name = "api.alsa.pcm.sink"
		media.class = "Audio/Sink"
		device.description = "Built-in Audio"
		node.name = "alsa_output.pci-0000_00_1f.3.iec958-stereo"
		node.nick = "ALC1220 Digital"
		node.pause-on-idle = "false"
		object.path = "alsa:acp:PCH:11:playback"
		port.group = "playback"
		priority.driver = "736"
		priority.session = "736"
		factory.id = "19"
		clock.quantum-limit = "8192"
		client.id = "47"
		node.driver = "true"
		node.loop.name = "data-loop.0"
		library.name = "audioconvert/libspa-audioconvert"
		object.id = "35"
		object.serial = "57"
		api.acp.auto-port = "false"
		api.acp.auto-profile = "false"
		api.alsa.card = "0"
		api.alsa.split-enable = "true"
		api.alsa.use-acp = "true"
		api.dbus.ReserveDevice1 = "Audio0"
		api.dbus.ReserveDevice1.Priority = "-20"
		device.bus = "pci"
		device.bus_path = "pci-0000:00:1f.3"
		device.enum.api = "udev"
		device.form_factor = "internal"
		device.name = "alsa_card.pci-0000_00_1f.3"
		device.nick = "HDA Intel PCH"
		device.plugged.usec = "3666699"
		device.product.id = "0xa348"
		device.product.name = "Cannon Lake PCH cAVS"
		device.subsystem = "sound"
		sysfs.path = "/devices/pci0000:00/0000:00:1f.3/sound/card0"
		device.vendor.id = "0x8086"
		device.vendor.name = "Intel Corporation"
		spa.object.id = "2"
		device.string = "0"
	Ports:
		iec958-stereo-output: Digital Output (S/PDIF) (type: SPDIF, priority: 0, availability unknown)
	Active Port: iec958-stereo-output
	Formats:
		pcm
$ pactl list cards
Card #48
	Name: alsa_card.pci-0000_01_00.1
	Driver: alsa
	Owner Module: n/a
	Properties:
		api.acp.auto-port = "false"
		api.acp.auto-profile = "false"
		api.alsa.card = "1"
		api.alsa.card.longname = "HDA NVidia at 0x3d080000 irq 17"
		api.alsa.card.name = "HDA NVidia"
		api.alsa.path = "hw:1"
		api.alsa.split-enable = "true"
		api.alsa.use-acp = "true"
		api.dbus.ReserveDevice1 = "Audio1"
		api.dbus.ReserveDevice1.Priority = "-20"
		device.api = "alsa"
		device.bus = "pci"
		device.bus_path = "pci-0000:01:00.1"
		device.description = "GP104 High Definition Audio Controller"
		device.enum.api = "udev"
		device.icon_name = "audio-card-analog-pci"
		device.name = "alsa_card.pci-0000_01_00.1"
		device.nick = "HDA NVidia"
		device.plugged.usec = "3645505"
		device.product.id = "0x10f0"
		device.product.name = "GP104 High Definition Audio Controller"
		device.subsystem = "sound"
		sysfs.path = "/devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1"
		device.vendor.id = "0x10de"
		device.vendor.name = "NVIDIA Corporation"
		media.class = "Audio/Device"
		spa.object.id = "4"
		factory.id = "15"
		client.id = "47"
		object.id = "48"
		object.serial = "48"
		object.path = "alsa:acp:NVidia"
		alsa.card = "1"
		alsa.card_name = "HDA NVidia"
		alsa.long_card_name = "HDA NVidia at 0x3d080000 irq 17"
		alsa.driver_name = "snd_hda_intel"
		alsa.mixer_name = "Nvidia GPU 83 HDMI/DP"
		alsa.components = "HDA:10de0083,14583717,00100100"
		alsa.id = "NVidia"
		device.string = "1"
	Profiles:
		off: Off (sinks: 0, sources: 0, priority: 0, available: yes)
		output:hdmi-stereo: Digital Stereo (HDMI) Output (sinks: 1, sources: 0, priority: 5900, available: yes)
		output:hdmi-stereo-extra1: Digital Stereo (HDMI 2) Output (sinks: 1, sources: 0, priority: 5700, available: no)
		output:hdmi-stereo-extra2: Digital Stereo (HDMI 3) Output (sinks: 1, sources: 0, priority: 5700, available: no)
		output:hdmi-stereo-extra3: Digital Stereo (HDMI 4) Output (sinks: 1, sources: 0, priority: 5700, available: no)
		output:hdmi-surround-extra1: Digital Surround 5.1 (HDMI 2) Output (sinks: 1, sources: 0, priority: 600, available: no)
		output:hdmi-surround71-extra1: Digital Surround 7.1 (HDMI 2) Output (sinks: 1, sources: 0, priority: 600, available: no)
		output:hdmi-surround-extra2: Digital Surround 5.1 (HDMI 3) Output (sinks: 1, sources: 0, priority: 600, available: no)
		output:hdmi-surround71-extra2: Digital Surround 7.1 (HDMI 3) Output (sinks: 1, sources: 0, priority: 600, available: no)
		output:hdmi-surround-extra3: Digital Surround 5.1 (HDMI 4) Output (sinks: 1, sources: 0, priority: 600, available: no)
		output:hdmi-surround71-extra3: Digital Surround 7.1 (HDMI 4) Output (sinks: 1, sources: 0, priority: 600, available: no)
		pro-audio: Pro Audio (sinks: 4, sources: 0, priority: 1, available: yes)
	Active Profile: output:hdmi-stereo
	Ports:
		hdmi-output-0: HDMI / DisplayPort (type: HDMI, priority: 5900, latency offset: 0 usec, availability group: Legacy 1, available)
			Properties:
				port.type = "hdmi"
				port.availability-group = "Legacy 1"
				device.icon_name = "video-display"
				card.profile.port = "0"
				device.product.name = "VG27A"
				iec958.codecs.detected = "[\"PCM\"]"
			Part of profile(s): output:hdmi-stereo
		hdmi-output-1: HDMI / DisplayPort 2 (type: HDMI, priority: 5800, latency offset: 0 usec, availability group: Legacy 2, not available)
			Properties:
				port.type = "hdmi"
				port.availability-group = "Legacy 2"
				device.icon_name = "video-display"
				card.profile.port = "1"
			Part of profile(s): output:hdmi-stereo-extra1, output:hdmi-surround-extra1, output:hdmi-surround71-extra1
		hdmi-output-2: HDMI / DisplayPort 3 (type: HDMI, priority: 5700, latency offset: 0 usec, availability group: Legacy 3, not available)
			Properties:
				port.type = "hdmi"
				port.availability-group = "Legacy 3"
				device.icon_name = "video-display"
				card.profile.port = "2"
			Part of profile(s): output:hdmi-stereo-extra2, output:hdmi-surround-extra2, output:hdmi-surround71-extra2
		hdmi-output-3: HDMI / DisplayPort 4 (type: HDMI, priority: 5600, latency offset: 0 usec, availability group: Legacy 4, not available)
			Properties:
				port.type = "hdmi"
				port.availability-group = "Legacy 4"
				device.icon_name = "video-display"
				card.profile.port = "3"
			Part of profile(s): output:hdmi-stereo-extra3, output:hdmi-surround-extra3, output:hdmi-surround71-extra3

Card #49
	Name: alsa_card.pci-0000_00_1f.3
	Driver: alsa
	Owner Module: n/a
	Properties:
		api.acp.auto-port = "false"
		api.acp.auto-profile = "false"
		api.alsa.card = "0"
		api.alsa.card.longname = "HDA Intel PCH at 0x3d330000 irq 145"
		api.alsa.card.name = "HDA Intel PCH"
		api.alsa.path = "hw:0"
		api.alsa.split-enable = "true"
		api.alsa.use-acp = "true"
		api.dbus.ReserveDevice1 = "Audio0"
		api.dbus.ReserveDevice1.Priority = "-20"
		device.api = "alsa"
		device.bus = "pci"
		device.bus_path = "pci-0000:00:1f.3"
		device.description = "Built-in Audio"
		device.enum.api = "udev"
		device.form_factor = "internal"
		device.icon_name = "audio-card-analog-pci"
		device.name = "alsa_card.pci-0000_00_1f.3"
		device.nick = "HDA Intel PCH"
		device.plugged.usec = "3666699"
		device.product.id = "0xa348"
		device.product.name = "Cannon Lake PCH cAVS"
		device.subsystem = "sound"
		sysfs.path = "/devices/pci0000:00/0000:00:1f.3/sound/card0"
		device.vendor.id = "0x8086"
		device.vendor.name = "Intel Corporation"
		media.class = "Audio/Device"
		spa.object.id = "2"
		factory.id = "15"
		client.id = "47"
		object.id = "49"
		object.serial = "49"
		object.path = "alsa:acp:PCH"
		alsa.card = "0"
		alsa.card_name = "HDA Intel PCH"
		alsa.long_card_name = "HDA Intel PCH at 0x3d330000 irq 145"
		alsa.driver_name = "snd_hda_intel"
		alsa.mixer_name = "Realtek ALC1220"
		alsa.components = "HDA:10ec1220,1458a0c3,00100101"
		alsa.id = "PCH"
		device.string = "0"
	Profiles:
		off: Off (sinks: 0, sources: 0, priority: 0, available: yes)
		output:analog-stereo+input:analog-stereo: Analog Stereo Duplex (sinks: 1, sources: 1, priority: 6565, available: no)
		output:analog-stereo: Analog Stereo Output (sinks: 1, sources: 0, priority: 6500, available: no)
		output:iec958-stereo+input:analog-stereo: Digital Stereo (IEC958) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 5565, available: yes)
		output:iec958-stereo: Digital Stereo (IEC958) Output (sinks: 1, sources: 0, priority: 5500, available: yes)
		output:analog-surround-21+input:analog-stereo: Analog Surround 2.1 Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 1365, available: no)
		output:analog-surround-41+input:analog-stereo: Analog Surround 4.1 Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 1365, available: no)
		output:analog-surround-51+input:analog-stereo: Analog Surround 5.1 Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 1365, available: no)
		output:analog-surround-21: Analog Surround 2.1 Output (sinks: 1, sources: 0, priority: 1300, available: no)
		output:analog-surround-41: Analog Surround 4.1 Output (sinks: 1, sources: 0, priority: 1300, available: no)
		output:analog-surround-51: Analog Surround 5.1 Output (sinks: 1, sources: 0, priority: 1300, available: no)
		output:analog-surround-40+input:analog-stereo: Analog Surround 4.0 Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 1265, available: no)
		output:analog-surround-50+input:analog-stereo: Analog Surround 5.0 Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 1265, available: no)
		output:analog-surround-40: Analog Surround 4.0 Output (sinks: 1, sources: 0, priority: 1200, available: no)
		output:analog-surround-50: Analog Surround 5.0 Output (sinks: 1, sources: 0, priority: 1200, available: no)
		output:iec958-ac3-surround-51+input:analog-stereo: Digital Surround 5.1 (IEC958/AC3) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 365, available: no)
		output:iec958-ac3-surround-51: Digital Surround 5.1 (IEC958/AC3) Output (sinks: 1, sources: 0, priority: 300, available: yes)
		input:analog-stereo: Analog Stereo Input (sinks: 0, sources: 1, priority: 65, available: no)
		pro-audio: Pro Audio (sinks: 2, sources: 2, priority: 1, available: yes)
	Active Profile: output:iec958-stereo+input:analog-stereo
	Ports:
		analog-input-front-mic: Front Microphone (type: Mic, priority: 8500, latency offset: 0 usec, availability group: Legacy 1, not available)
			Properties:
				port.type = "mic"
				port.availability-group = "Legacy 1"
				device.icon_name = "audio-input-microphone"
				card.profile.port = "0"
			Part of profile(s): input:analog-stereo, output:analog-stereo+input:analog-stereo, output:analog-surround-21+input:analog-stereo, output:analog-surround-40+input:analog-stereo, output:analog-surround-41+input:analog-stereo, output:analog-surround-50+input:analog-stereo, output:analog-surround-51+input:analog-stereo, output:iec958-stereo+input:analog-stereo, output:iec958-ac3-surround-51+input:analog-stereo
		analog-input-rear-mic: Rear Microphone (type: Mic, priority: 8200, latency offset: 0 usec, availability group: Legacy 2, not available)
			Properties:
				port.type = "mic"
				port.availability-group = "Legacy 2"
				device.icon_name = "audio-input-microphone"
				card.profile.port = "1"
			Part of profile(s): input:analog-stereo, output:analog-stereo+input:analog-stereo, output:analog-surround-21+input:analog-stereo, output:analog-surround-40+input:analog-stereo, output:analog-surround-41+input:analog-stereo, output:analog-surround-50+input:analog-stereo, output:analog-surround-51+input:analog-stereo, output:iec958-stereo+input:analog-stereo, output:iec958-ac3-surround-51+input:analog-stereo
		analog-input-linein: Line In (type: Line, priority: 8100, latency offset: 0 usec, availability group: Legacy 3, not available)
			Properties:
				port.type = "line"
				port.availability-group = "Legacy 3"
				card.profile.port = "2"
			Part of profile(s): input:analog-stereo, output:analog-stereo+input:analog-stereo, output:analog-surround-21+input:analog-stereo, output:analog-surround-40+input:analog-stereo, output:analog-surround-41+input:analog-stereo, output:analog-surround-50+input:analog-stereo, output:analog-surround-51+input:analog-stereo, output:iec958-stereo+input:analog-stereo, output:iec958-ac3-surround-51+input:analog-stereo
		analog-output-lineout: Line Out (type: Line, priority: 9000, latency offset: 0 usec, availability group: Legacy 4, not available)
			Properties:
				port.type = "line"
				port.availability-group = "Legacy 4"
				card.profile.port = "3"
			Part of profile(s): output:analog-stereo, output:analog-stereo+input:analog-stereo, output:analog-surround-21, output:analog-surround-21+input:analog-stereo, output:analog-surround-40, output:analog-surround-40+input:analog-stereo, output:analog-surround-41, output:analog-surround-41+input:analog-stereo, output:analog-surround-50, output:analog-surround-50+input:analog-stereo, output:analog-surround-51, output:analog-surround-51+input:analog-stereo
		analog-output-headphones: Headphones (type: Headphones, priority: 9900, latency offset: 0 usec, availability group: Legacy 5, not available)
			Properties:
				port.type = "headphones"
				port.availability-group = "Legacy 5"
				device.icon_name = "audio-headphones"
				card.profile.port = "4"
			Part of profile(s): output:analog-stereo, output:analog-stereo+input:analog-stereo
		iec958-stereo-output: Digital Output (S/PDIF) (type: SPDIF, priority: 0, latency offset: 0 usec, availability unknown)
			Properties:
				port.type = "spdif"
				card.profile.port = "5"
			Part of profile(s): output:iec958-stereo, output:iec958-stereo+input:analog-stereo
$ systemctl --user status pipewire{,-pulse} wireplumber
● pipewire.service - PipeWire Multimedia Service
     Loaded: loaded (/usr/lib/systemd/user/pipewire.service; disabled; preset: enabled)
     Active: active (running) since Mon 2025-08-18 16:05:35 CEST; 1h 24min ago
 Invocation: 248d31943851427694949208ef135fc4
TriggeredBy: ● pipewire.socket
   Main PID: 3514 (pipewire)
      Tasks: 3 (limit: 38019)
     Memory: 8.2M (peak: 11M)
        CPU: 22.052s
     CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/pipewire.service
             └─3514 /usr/bin/pipewire

Aug 18 16:05:35 host systemd[1260]: Started PipeWire Multimedia Service.

● pipewire-pulse.service - PipeWire PulseAudio
     Loaded: loaded (/usr/lib/systemd/user/pipewire-pulse.service; disabled; preset: enabled)
     Active: active (running) since Mon 2025-08-18 16:05:35 CEST; 1h 24min ago
 Invocation: 77b684dcf2694fe0bd7e4cd96b965a4c
TriggeredBy: ● pipewire-pulse.socket
   Main PID: 3516 (pipewire-pulse)
      Tasks: 3 (limit: 38019)
     Memory: 13.8M (peak: 16.5M)
        CPU: 18.946s
     CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/pipewire-pulse.service
             └─3516 /usr/bin/pipewire-pulse

Aug 18 16:05:35 host systemd[1260]: Started PipeWire PulseAudio.

● wireplumber.service - Multimedia Service Session Manager
     Loaded: loaded (/usr/lib/systemd/user/wireplumber.service; enabled; preset: enabled)
     Active: active (running) since Mon 2025-08-18 16:05:35 CEST; 1h 24min ago
 Invocation: 09f52a5b6e8f42c38a34c103b1bb50d0
   Main PID: 3515 (wireplumber)
      Tasks: 6 (limit: 38019)
     Memory: 13M (peak: 15M)
        CPU: 823ms
     CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/wireplumber.service
             └─3515 /usr/bin/wireplumber

Aug 18 16:05:35 host systemd[1260]: Started Multimedia Service Session Manager.
Aug 18 16:05:35 host wireplumber[3515]: wp-device: SPA handle 'api.libcamera.enum.manager' could not be loaded; is it installed?
Aug 18 16:05:35 host wireplumber[3515]: s-monitors-libcamera: PipeWire's libcamera SPA plugin is missing or broken. Some camera types may not be supported.
# fuser -v /dev/snd/*
                     USER        PID ACCESS COMMAND
/dev/snd/controlC0:  user     3515 F.... wireplumber
/dev/snd/controlC1:  user     3515 F.... wireplumber
/dev/snd/seq:        user     3514 F.... pipewire

I test using the following command:

speaker-test -D hdmi:CARD=1,DEV=3 -c 2

Any ideas on how to fix this? Let me know if there's other commands/logs that may help debugging the issue.

Offline

#2 2025-09-02 13:12:52

Vamp898
Member
Registered: 2009-01-03
Posts: 1,032
Website

Re: No HDMI / DisplayPort audio on PipeWire + Nvidia drivers

Just out of the blue, have you tried checking with alsamixer? wireplumber says Vol 1.00 and unmuted but just for the sake of it.

And the output of pw-link -l when you play audio please

Offline

#3 2025-09-06 15:17:55

ahartik
Member
Registered: 2021-02-18
Posts: 1

Re: No HDMI / DisplayPort audio on PipeWire + Nvidia drivers

I experienced the same issue recently, with HDMI audio previously working perfectly. My GPU is 1080 TI, and I'm using an active HDMI cable (15m). Audio over the cable works fine from my laptop. I'm using sway.

Strangely, if I toggled the HDMI display on and off many times, sometimes the sound started working.

I first experienced this with driver version 580.76.05-4. This issue also happens with the current arch version of the driver, 580.82.07-1.

FIX: I downgraded my drivers by running

sudo downgrade nvidia-dkms nvidia-utils lib32-nvidia-utils

Using downgrade from AUR. I installed version 575.64.03-1 of all packages, since that is what I was using previously. Also added these packages to IgnorePkg for now.

Offline

#4 2025-09-14 21:19:54

poinu
Member
Registered: 2016-05-09
Posts: 15

Re: No HDMI / DisplayPort audio on PipeWire + Nvidia drivers

Thank you both for the replies, and apologies for the delay in the response.

I've checked with alsamixer, I see everything unmuted there as well. Here's the output of pw-link -l when playing audio in Firefox:

$ pw-link -l
alsa_output.pci-0000_01_00.1.hdmi-stereo:playback_FL
  |<- Firefox:output_FL
alsa_output.pci-0000_01_00.1.hdmi-stereo:playback_FR
  |<- Firefox:output_FR
Firefox:output_FL
  |-> alsa_output.pci-0000_01_00.1.hdmi-stereo:playback_FL
Firefox:output_FR
  |-> alsa_output.pci-0000_01_00.1.hdmi-stereo:playback_FR

ahartik's comment made me think about the cable, so I tested replacing the DisplayPort cable with an HDMI. Surprisingly enough audio works with HDMI, but not with DisplayPort.

Is there a separate configuration step needed to route audio through DisplayPort instead of HDMI? Or should the device appear the same in PipeWire for both?

Offline

Board footer

Powered by FluxBB