Stuttering audio on Surface Laptop 3
I'm running NixOS with 0.3.17.
$ pactl info
...
Server Name: PulseAudio (on PipeWire 0.3.17)
...
It reports a bunch of XRun errors while playing a file in mpv, or via firefox.
Dec 08 17:46:16 hyrule rtkit-daemon[1957]: Supervising 2 threads of 2 processes of 1 users.
Dec 08 17:46:16 hyrule rtkit-daemon[1957]: Supervising 2 threads of 2 processes of 1 users.
Dec 08 17:46:16 hyrule pipewire-pulse[1968]: pulse-server 0x19e0530: [waybar] ERROR command:21 (GET_SINK_INFO) tag:4 error:5 (No such file or directory)
Dec 08 17:46:16 hyrule pipewire-pulse[1968]: pulse-server 0x19e0530: [waybar] ERROR command:23 (GET_SOURCE_INFO) tag:5 error:5 (No such file or directory)
Dec 08 17:46:16 hyrule rtkit-daemon[1957]: Successfully made thread 1976 of process 1968 owned by 'speed' RT at priority 20.
Dec 08 17:46:16 hyrule rtkit-daemon[1957]: Supervising 3 threads of 3 processes of 1 users.
Dec 08 17:46:16 hyrule pipewire-media-session[1958]: Register() failed: org.freedesktop.DBus.Error.ServiceUnknown
Dec 08 17:46:16 hyrule pipewire-media-session[1958]: RegisterApplication() failed: org.freedesktop.DBus.Error.ServiceUnknown
Dec 08 17:46:16 hyrule bluetoothd[1788]: src/profile.c:ext_start_servers() RFCOMM server failed for Headset Voice gateway: socket(STREAM, RFCOMM): Protocol not supported (93)
Dec 08 17:46:16 hyrule bluetoothd[1788]: src/profile.c:ext_start_servers() RFCOMM server failed for Headset unit: socket(STREAM, RFCOMM): Protocol not supported (93)
Dec 08 17:46:16 hyrule bluetoothd[1788]: Endpoint registered: sender=:1.26 path=/MediaEndpoint/A2DPSink/sbc
Dec 08 17:46:16 hyrule bluetoothd[1788]: Endpoint registered: sender=:1.26 path=/MediaEndpoint/A2DPSource/sbc
Dec 08 17:46:41 hyrule pipewire-pulse[1968]: Failed to mlock memory 0x7f26325dd000 32832: This is not a problem but for best performance, consider increasing RLIMIT_MEMLOCK
Dec 08 17:46:42 hyrule pipewire[1954]: (alsa_output.pci-0000:00:1f.3.analog-stereo-49) XRun! count:1 time:64193833 delay:233897 max:233897
Dec 08 17:46:44 hyrule pipewire[1954]: 4 events suppressed
Dec 08 17:46:44 hyrule pipewire[1954]: (alsa_output.pci-0000:00:1f.3.analog-stereo-49) XRun! count:6 time:66227548 delay:449826 max:449826
Dec 08 17:46:46 hyrule pipewire[1954]: 3 events suppressed
Dec 08 17:46:46 hyrule pipewire[1954]: (alsa_output.pci-0000:00:1f.3.analog-stereo-49) XRun! count:10 time:68236509 delay:449773 max:449826
Dec 08 17:46:46 hyrule .xdg-desktop-po[1922]: Failed to get application states: GDBus.Error:org.freedesktop.portal.Error.Failed: Could not get window list
Attached is a PIPEWIRE_DEBUG=4
file:pipe.log
I think the GET_SINK_INFO/SOURCE_INFO errors are fixed in master. I checked RLIMIT_MEMLOCK but couldn't find a lot of documentation about it. ulimit
says it's configured to 64k:
$ ulimit -a
-t: cpu time (seconds) unlimited
-f: file size (blocks) unlimited
-d: data seg size (kbytes) unlimited
-s: stack size (kbytes) 8192
-c: core file size (blocks) unlimited
-m: resident set size (kbytes) unlimited
-u: processes 62357
-n: file descriptors 1024
-l: locked-in-memory size (kbytes) 64
-v: address space (kbytes) unlimited
-x: file locks unlimited
-i: pending signals 62357
-q: bytes in POSIX msg queues 819200
-e: max nice 0
-r: max rt priority 0
-N 15: unlimited