You are not logged in.
Pages: 1
Changes to the sdl2 packages in the latest update has caused weird noises in Sauerbraten.
Anybody have any ideas, or am I the only person that still uses this?
Last edited by grg3 (Yesterday 17:05:07)
Offline
Did you test the workaround I mentioned in the other post? https://bbs.archlinux.org/viewtopic.php … 5#p2223245
Offline
I tried removing sdl2-compat and reinstalling sdl2 and that seems to work. Sounds are back to normal!
Offline
Yes of course that works, but sdl2-compat is the general solution for the future, so it would be interesting to know whether just the sound backend switch helps (which you do implicitly since SDL2 defaults to pulse, where SDL3 defaults to pipewire) FWIW I haven't played sauerbraten in a bit, testing this might motivate me to pick it up again.
Last edited by V1del (Yesterday 18:53:56)
Offline
I just updated system and have sdl2-compat instead sdl2. Now in Sauerbraten players when hit squeak, when weapon is changed and power-up is taken there is also short strange sound. For me the game now is more funny. I wonder if in another games/apps there are also waiting some surprises...
In xonotic-sdl in console opened by tilde ~ nothing can be written, unlike with xonotic-glx, which is fine.
I use pulseaudio.
Last edited by xerxes_ (Yesterday 23:19:03)
Offline
The text input issue has been reported and should be fixed in -git, might be worth to backport.
Offline
The solution to run 'SDL_AUDIODRIVER=pulseaudio sauerbraten-client' or 'export SDL_AUDIODRIVER=pulseaudio' don't work for me.
Also milkytracker is hurt and while it start, it don't play music, but bleep sound. Started in console explain something:
$ SDL_AUDIODRIVER=pulseaudio milkytracker
ASCIISYNTH IMPORT: 'M1(N*(51)D)vA)/)M),(Xt@(*((((((('
DISPLAY: set environmentvar NO_OPENGL=1 to disable hardware acceleration
Available Renderers: opengl opengles2 vulkan gpu software
Vendor : Mesa
Renderer : NV117
Version : 4.3 (Compatibility Profile) Mesa 24.3.4-arch1.1
SDL: Minimum window size set to 1024x768.
SDL: Using accelerated renderer.
SDL: Renderer supports rendering to texture.
0 0
env 0 060203050700000000C000040100000800B0000E00200018005800200020
env 1 060203050700000000C000040100000800B0000E00200018005800200020
env 2 060203050700000000C000040100000800B0000E00200018005800200020
env 3 060203050700000000C000040100000800B0000E00200018005800200020
env 4 060203050700000000C000040100000800B0000E00200018005800200020
env 5 060203050700000000C000040100000800B0000E00200018005800200020
env 6 060203050700000000C000040100000800B0000E00200018005800200020
env 7 060203050700000000C000040100000800B0000E00200018005800200020
env 8 060203050700000000C000040100000800B0000E00200018005800200020
env 9 060203050700000000C000040100000800B0000E00200018005800200020
SDL: Using audio driver: pulseaudio
SDL: Buffer size = 2048 samples (requested 2048)
SDL: Invalid buffer size: 768 (should be 2048), skipping..
SDL: Invalid buffer size: 319 (should be 2048), skipping..
SDL: Invalid buffer size: 264 (should be 2048), skipping..
SDL: Invalid buffer size: 256 (should be 2048), skipping..
SDL: Invalid buffer size: 256 (should be 2048), skipping..
SDL: Invalid buffer size: 256 (should be 2048), skipping..
SDL: Invalid buffer size: 256 (should be 2048), skipping..
...
It work normal when I preload old libsdl2 library when I start milkytracker like this: '/lib/ld-linux-x86-64.so.2 --preload /tmp/libSDL2-2.0.so.0 /usr/bin/milkytracker'.
I tried this with sauerbraten, but then it don't start because can't find some textures:
$ /lib/ld-linux-x86-64.so.2 --preload /tmp/libSDL2-2.0.so.0 /opt/sauerbraten/bin/linux_client
init: sdl
init: net
init: game
init: video
init: gl
Renderer: NV117 (Mesa)
Driver: 4.3 (Core Profile) Mesa 24.3.4-arch1.1
could not load texture packages/textures/notexture.png
could not find core textures
UPDATE
Warsow is heavily impacted:
- font menu is garbage
- game render window is black and occasionally flashes; it's impossible to play
- game console: can't write anything, like in xonotic-sdl
- audio?: don't have time to listen when I don't see almost anything
Warsow don't post anything to console.
Hedgewars, 0ad looks as not affected.
How to preload libraries to games/apps when they are started as bash scripts?:
$ /lib/ld-linux-x86-64.so.2 --preload /usr/local/lib/libSDL2-2.0.so.0 /usr/bin/warsow
/usr/bin/warsow: error while loading shared libraries: /usr/bin/warsow: invalid ELF header
and
/lib/ld-linux-x86-64.so.2 --preload /usr/local/lib/libSDL2-2.0.so.0 /opt/warsow/warsow.x86_64
/lib/ld-linux-x86-64.so.2 --preload /usr/local/lib/libSDL2-2.0.so.0 /opt/warsow/warsow.x86_64 basepath="/opt/warsow" '${basepath}/warsow' '+set fs_basepath ${basepath}' '+set fs_usehomedir 1 "${@}"'
/lib/ld-linux-x86-64.so.2 --preload /usr/local/lib/libSDL2-2.0.so.0 /opt/warsow/warsow.x86_64 "$(cat /usr/bin/warsow)"
/lib/ld-linux-x86-64.so.2 --preload /usr/local/lib/libSDL2-2.0.so.0 /opt/warsow/warsow.x86_64 "$(< /usr/bin/warsow)"
xargs -a /usr/bin/warsow /lib/ld-linux-x86-64.so.2 --preload /usr/local/lib/libSDL2-2.0.so.0 /opt/warsow/warsow.x86_64
xargs < /usr/bin/warsow /lib/ld-linux-x86-64.so.2 --preload /usr/local/lib/libSDL2-2.0.so.0 /opt/warsow/warsow.x86_64
displays window with:
---------------------------
Warsow
---------------------------
Failed to load default refresh DLL
---------------------------
OK
---------------------------
and '/lib/ld-linux-x86-64.so.2 --preload /usr/local/lib/libSDL2-2.0.so.0 /opt/sauerbraten/bin/linux_client' displays window with::
---------------------------
Cube 2: Sauerbraten fatal error
---------------------------
could not find core textures
---------------------------
OK
---------------------------
Last edited by xerxes_ (Today 13:25:27)
Offline
That's a good list, you might want to consider reporting these upstream.
You can export LD_PRELOAD=/usr/local/lib/libSDL2-2.0.so.0 as an environment variable instead of calling ld yourself directly
Offline
Solution with 'export LD_PRELOAD=/usr/local/lib/libSDL2-2.0.so.0' work.
For people looking for solution: https://bbs.archlinux.org/viewtopic.php … 0#p2223520
It should work for all sdl2 affected software: sauerbraten, xonotic-sdl, warsow, dwarffortress, milkytracker, etc. probably widelands too:
Extract from package sdl2-2.30.11-1-x86_64.pkg.tar.zst (you should have it in /var/cache/pacman/pkg/) files and symlinks:
lrwxrwxrwx 0 root root 0 sty 3 04:40 usr/lib/libSDL2-2.0.so -> libSDL2-2.0.so.0
lrwxrwxrwx 0 root root 0 sty 3 04:40 usr/lib/libSDL2-2.0.so.0 -> libSDL2-2.0.so.0.3000.11
-rwxr-xr-x 0 root root 1873352 sty 3 04:40 usr/lib/libSDL2-2.0.so.0.3000.11
lrwxrwxrwx 0 root root 0 sty 3 04:40 usr/lib/libSDL2.so -> libSDL2-2.0.so
to for example /usr/local/lib/ dir with root rights or wherever you want.
Then in terminal post 'export LD_PRELOAD=/usr/local/lib/libSDL2-2.0.so.0' or 'export LD_PRELOAD=/path_to_dir_where_you_copied_it/libSDL2-2.0.so.0' or you may add this to your .bashrc file and then when you start game from that terminal (or when you setup in .bashrc - every new terminal) it should work as before.
I know it's temporary solution - we will be waiting for actual fix for sdl2-compat.
BTW, what was the reason to switch from sdl2 to sdl2-compat?
Last edited by xerxes_ (Today 18:44:17)
Offline
sdl3 got released and with it officially sdl2-compat (which implements the interfaces SDL2 had but with SDL3 under the hood) which "should" have been smooth sailing. Since we don't live in shouldland, seems some bugs are still around. FWIW IMO the switch was done a bit early, while not exactly the same since the idea of sdl1-compat was novel when it was first done, sdl1 got switched to the corresponding sdl1-compat years after SDL2 was established and mature.
Generally speaking upstream (the SDL devs) do strongly advocate for using sdl2-compat and the packagers probably have done so in good faith, and while I'm sure the bugs are going to get cranked out in the next few weeks/months it might have been a better idea to wait this out a bit. On the flipside, since these kind of reports and tests that can happen now are necessary to get things stabilized, I'm sure everyone involved would appreciate getting reports on the things that don't work correctly still so the lib can get properly updated.
https://github.com/libsdl-org/sdl2-compat/issues already contains a few mentions of GPU corruptions in certain cases.
Last edited by V1del (Today 18:25:44)
Offline
Pages: 1