-
Notifications
You must be signed in to change notification settings - Fork 177
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Regression: Unity3D games — Crash on launch if pulseaudio is not running #38
Comments
My bad, I tried the latest tag ( |
In case it may help, is here the diff I get in
Output is truncated, everything after the |
And it's correct. I'd be happy to fix a bug in alsa-lib, but the bug is really in the app code. See the list which the app produce with the debug output: #27 (comment) . It looks like a wrong memory management which ends with the crash in some cases. You can disable listing of those plugins via alsa-lib's configuration files (remove hint {} section), but then the you won't see them in all apps. Or you can make a private alsa-lib configuration for this app using the ALSA_CONFIG_DIR environment variable. There are several ways to override the alsa-lib's configuration. |
I could not find a way to provide application-specific configuration overrides without having to set up a full ALSA configuration, did I miss something in the documentation? Being able to set a custom path for It seems The only workaround I have so far is to hide
But I have no complete understanding of the side effects it could have. Actually I was quite surprised to notice that applications play sound without any issue with this trick, I was expecting to work around the crash at the cost of no sound in application. |
The ~/.asoundrc is loaded via /usr/share/alsa/alsa.conf (look to the start). If the app does not require alsa-lib (linked to pulseaudio, too?), you may try something like:
|
Well, that is the tricky part I have some difficulties to understand. To give some more context:
If I use no workaround, I get the described crash. Using a current alsa-lib build from master instead of the 1.2.2 build provided by my distribution brings no change, I still get the crash. If I set If I use the symlink trick to hide To make it clear, I am OK to settle with the hiding of |
Hmm.... On Arch with alsa-lib build directly from latest git with ABS i can run Vaporum (a unity game) without problems, with pulseaudio not running at all. Needless to say my aplay -L output looks very different than yours. |
Full output of
|
Well....... The issue might very well be that you forgot re-building or re-installing libasound2-data.
Debian's alsa-lib package is a source package that gets divided into multiple sub-packages at build time. |
During my tests I’m actually not installing the new libraries, but preloading them using That was it, well spotted @DarkWav ;) Sorry for the noise, the fix in current master is indeed working as expected. |
Nice! Then this issue is truly fixed now xD |
Package-Manager: Portage-2.3.100, Repoman-2.3.22 Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
Multiple Unity3D games crash on launch if you try to launch them while pulseaudio is not running. For games using the
ScreenSelector.so
plugin, the crash happen after the screen resolution selection.It seems to only happen on systems using Mesa + amdpgu.
The crash happens with
alsa-lib
v1.2.2, but does not happen withalsa-lib
1.1.8. This allowed me to run a regression test and find the faulty commit:From what I understand, this commit has been used to fix the following issue: alsa-project/alsa-plugins#3
The following patch applies cleanly on tag
v1.2.2
and currentmaster
, and fixes this crash:It is probably not ideal, as I guess it would restore the regression it was supposed to fix.
The original research about this regression can be found on ./play.it issues tracker: Unity3D + amgdpu (Mesa) — Crash on launch if pulseaudio is not running
The text was updated successfully, but these errors were encountered: