Open KSSBrawl opened 6 months ago
Does this happen with SDL 2.30.1? If so, definitely file this here as well:
https://github.com/libsdl-org/SDL/issues
You may also be able to get around the issue with SDL_AUDIODRIVER=pipewire.
After testing with 2.30.1, it does still happen once I prevent it from compiling and including the PipeWire support. Will definitely submit the issue to the SDL repo.
The issue
When 2.4 released, I immediately ran into an issue on my Linux system where the audio would either drop out at some random point and then never come back or be absent from the moment the game started. Additionally, not only does this issue persist in 2.4.1 but also once this happens the game's running process sometimes fails to terminate when closing the game.
The cause (?)
I had just replaced PulseAudio on my system with PipeWire which led me to suspect that the cause may have lied with PipeWire, and a look at the SDL2 build system turns up this part of
$(SDL2_SOURCE_DIR)/cmake/sdlchecks.cmake
:which essentially makes it so that native PipeWire support will only be compiled into the SDL2 binary if a recent enough version of
libpipewire
is installed on the system. This leads me to believe that the system on which SDL2 was compiled to be included with the Steam release of VVVVVV did not havelibpipewire
(although I obviously cannot say this for certain as I was not the one who compiled it) and thus PipeWire must capture and emulate PulseAudio calls from SDL2 which from my understanding is still somewhat buggy.My fix
I realize this is a bit of a "it works on my machine" but compiling SDL2 2.28.5 (though earlier versions may also work) from source on my machine that does have
libpipewire
and replacing thelibSDL2-2.0.so.0
included with the game with the newly-compiled one immediately fixed the issue.How to reproduce