View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0005292||The Dark Mod||Sound System||public||11.07.2020 21:21||11.11.2020 22:07|
|Platform||x64||OS||Linux openSUSE||OS Version||Release|
|Summary||0005292: Stuttering sound and performance loss when using OpenAL HRTF|
|Description||Enabling the new OpenAL HRTF feature causes the sound to shutter (break up) to the point of becoming just random noises, while even graphical performance will stutter if starting up a game. If you wait for roughly 1 second to 1 minute, the issue eventually goes away and you start hearing sound normally as well as getting acceptable performance... the problem does however occur at every startup when that option is enabled.|
|Steps To Reproduce||Enable Settings - Audio - OpenAL HRTF then restart: You should hear garbled sound on next startup.|
|Additional Information||TDM 2.08 (x64) on Linux openSUSE Tumbleweed (amdgpu / MESA)|
|Tags||No tags attached.|
I looked in Darkmod.log, the in-game console, and the bash console when running the engine from it. There's one suspicious message which appears to be spammed countless times among other normal messages:
AL lib: (EE) ALCplaybackAlsa_mixerNoMMapProc: available update failed: Broken pipe
I played around with some of the settings in alsoft.ini (needs to be copied to alsoft.conf on Linux). Preliminary testing shows some great news: I may have found the culprit!
The issue appears to go away once I set "period_size = 64". Going at the other end, "period_size = 8192" also doesn't seem to do it oddly, but that causes a huge delay for all sounds. The issue is when I set it to a middle value like "period_size = 1024" to "period_size = 4096", that's what seems to cause it almost constantly... the distortions differ slightly based on this value. I can even add other improvements like "frequency = 48000" and it works!
I'll update if I still encounter it with these changes too. In the meantime please consider if based on this results, it might be a good idea to change the default value of period_size to something lower, seeing how this helps solve the problem. Any reason why it can't be 64 by default? The problem only seems to occur from 512 (very rare and brief then) and up (almost always starting from 1024), even a 256 should be safe if a slightly higher default is needed for other reasons.