RPCS3 crashes on ALSA-only system

Hi.

I had an issue with RPCS3.
It crashed when I tried to open settings or start game:

rpcs3: /build/source/3rdparty/cubeb/cubeb/src/cubeb_alsa.c:896: alsa_init: Assertion `r == 0’ failed.

Part of my config responsible for audio:

hardware.alsa.enablePersistence = true;
services.pipewire.enable = false;

I’ve found two workarounds:

  1. Switching to pipewire
  2. Edit ~/.config/rpcs3/config.yml and set Renderer to FAudio in Audio category.

Did anyone experience the issue? Can anyone confirm?
I couldn’t find similar mentions on the internet. I wonder if it’s related to my hardware and should I report this to rpcs3 devs?

Thanks.

Try replacing

hardware.alsa.enablePersistence = true;
services.pipewire.enable = false;

with

hardware.alsa.enable = true;

This is what you should do if you want to use only ALSA. enablePersistence only saves the card settings before shutting down the system, while enable will also install alsa-utils and create /etc/asound.conf.

The error seems to come from this line:

I’m not sure what that means, honestly.

Thanks.
I thought hardware.alsa was deprecated.

It does, indeed.

pthread_attr_setstacksize(3) - Linux manual page

ERRORS top

pthread_attr_setstacksize() can fail with the following error: EINVAL The stack size is less than PTHREAD_STACK_MIN (16384) bytes. On some systems, pthread_attr_setstacksize() can fail with the error EINVAL if stacksize is not a multiple of the system page size.

Obviously 256KB > 16KB and my system’s page size is 4KB according to getconf PAGESIZE and /proc/1/smaps, so the assertion shouldn’t fail.

I’ve switched to PipeWire due to other reasons, but this still makes me curious.