[1.16.4] OpenAL fatal error prevents world sounds if enhanced processing is on
Efimero opened this issue ยท 18 comments
Mod Version:
4.0.3.8
Forge Version:
36.0.1
36.0.13
Link to client log:
https://gist.github.com/Efimero/5313bd5f9b60af9323e78d64f0d3ec87
[01Feb2021 12:37:44.776] [Sound engine/FATAL] [net.minecraft.util.concurrent.ThreadTaskExecutor/]: Error executing task on Sound executor
java.lang.IllegalStateException: OpenAL Error: Invalid Value [LowPassFilterSlot EXTEfx.AL_AUXILIARY_SEND_FILTER]
at org.orecruncher.sndctrl.audio.handlers.SoundFXProcessor.validate(SoundFXProcessor.java:309) ~[dsurround:1.16.4-4.0.3.8]
at org.orecruncher.sndctrl.audio.handlers.SoundFXProcessor.validate(SoundFXProcessor.java:294) ~[dsurround:1.16.4-4.0.3.8]
at org.orecruncher.sndctrl.audio.handlers.effects.Slot.check(Slot.java:65) ~[dsurround:1.16.4-4.0.3.8]
at org.orecruncher.sndctrl.audio.handlers.effects.LowPassFilterSlot.apply(LowPassFilterSlot.java:64) ~[dsurround:1.16.4-4.0.3.8]
at org.orecruncher.sndctrl.audio.handlers.SourceContext.tick(SourceContext.java:148) ~[dsurround:1.16.4-4.0.3.8]
at org.orecruncher.sndctrl.audio.handlers.SoundFXProcessor.tick(SoundFXProcessor.java:196) ~[dsurround:1.16.4-4.0.3.8]
at net.minecraft.client.audio.SoundSource.handler$zzd000$onPlay(SourceFile:563) ~[?:?]
at net.minecraft.client.audio.SoundSource.func_216438_c(SourceFile) ~[?:?]
at net.minecraft.client.audio.SoundEngine.lambda$null$5(SoundEngine.java:342) ~[?:?]
at net.minecraft.client.audio.ChannelManager$Entry.func_217890_b(SourceFile:34) ~[?:?]
at net.minecraft.util.concurrent.ThreadTaskExecutor.func_213166_h(ThreadTaskExecutor.java:172) ~[?:?]
at net.minecraft.util.concurrent.ThreadTaskExecutor.func_213168_p(ThreadTaskExecutor.java:134) ~[?:?]
at net.minecraft.util.concurrent.ThreadTaskExecutor.func_213161_c(ThreadTaskExecutor.java:150) ~[?:?]
at net.minecraft.client.audio.SoundEngineExecutor.func_213178_c(SourceFile:42) ~[?:?]
at java.lang.Thread.run(Thread.java:834) [?:?]
Description:
When advanced processing is on, no sound will play in-game, except for UI sounds, which means anything that could be culled errors and fails. Since this is on a thread executor, it seems like you're doing some operation that is not thread-safe. Disabling advanced sound processing makes it work as expected. Checked both versions of forge, same result. This may be a future change affecting the way you do things or a bug in forge. Good luck.
The thread in question is the actual sound engine thread that Minecraft has. Its the thread that does the manipulation of OpenAL. I think this is something different. What mods are in the pack?
It may be possible. OpenAL is not liking the values that are being passed in. I don't know how OpenAL is wired into Debian. What I am wondering is if the libraries that are dropped are current.
EDIT: Can you uninstall DS and try Sound Filters?
Sound Filters works fine even paired with Dynamic Surroundings (with effects off) it does what it should.
Tested it only with Dynamic Surroundings installed and the result was the same. Maybe it's specific to linux? I'm on Debian sid.
This is a head scratcher. This says:
[01Feb2021 12:45:03.742] [Render thread/INFO] [SoundControl/SoundUtils]: Enhanced sounds are enabled. Will perform sound engine reconfiguration.
that the EXTEfx extension is available. I am going to have to do some digging.
And it's not system-dependent, because it uses the jars in the libraries folder, so even libopenal.so is provided. Can you even reproduce it?
I don't have a Debian setup. I run windows. Do you have a link to the distro you are using? I should be able to get it up and running in virtual box or something.
One more question - which launcher do you use? I haven't run MC client on a non-Windows system before and I need all the training wheels I can get. :D
What I did:
- Windows 10 w/Virtual Box
- Debian 10 - whatever I got from clicking the download button the main page.
- Installed MC launcher.
- Installed Forge (36.0.14 IIRC).
- Dropped DS into the mods folder.
- Fired it up.
- It was very slow, but I did not get any errors that you are describing. Because it was VirtualBox I couldn't really move around the environment (mouse capture troubles), but things appeared OK.
EDIT: The mod version I was using was more current than published, but I can't imaging the changes it has would resolve this issue. Not sure what to make of it.
you'd need to run something like this in a linux terminal before it's in the sid version
echo "deb http://ftp.fr.debian.org/debian/ unstable main contrib non-free" | sudo tee -a /etc/apt/sources.list
sudo apt update
sudo apt dist-upgrade --auto-remove
otherwise you're still on the long term support version, not the nightlies
OK - I will update later today. If it does break it would appear that it would be something in the nightly rather than something in the mod. I have been scratching my head about this a bit and the error does not make sense in the particular context. It could be complaining about that it doesn't know anything about low pass filters, which would be wrong since it claims it supports that function, or it could be complaining about the values that are being supplied for the low pass filter, which again would be wrong since these values are clamped to the bounds specified by the library.
This is the JAR I used when testing. In terms of sound manipulation I changed logging/error checking so that it would occur whenever the mod interacts with OpenAL. For example, it will check after setting each of the two gain values for low pass and then the assignment to the sound. (Prior there would be only 1 check after doing all 3 operations.)
https://github.com/OreCruncher/DynamicSurroundings2/releases/tag/1.16.4-4.0.3.9B
I am baffled. It's not like I actually fixed anything. I'll take it as a win, but it bugs me not to have an answer.