Comments (3)
Interesting. I'm not aware of any hardware EAX device that supported more than 256 sources, and some only supported 128 or less. It working when raising the source limit to 512 feels like it's working around some other issue.
You say it works when set to normal hardware 3D mode, and only stops working when EAX is enabled. The UT2004 log shows:
Log: ALAudio: AL_OUT_OF_MEMORY in Init (creating transient source)
Error: ALAudio: couldn't allocate transient source
Error: Audio initialization failed.
The "transient source" bit there is interesting. I know when using EAX with DirectSound3D, it was common practice to create a DSound buffer (OpenAL source analog) just for controlling listener and global effect EAX properties, due to a quirk in how driver-specific EAX functionality is accessed. EAX with OpenAL doesn't require that, but I wonder if the engine still behaves that way for legacy reasons.
Additionally, with hardware the number of available sources was constrained by the number of channels each source uses; for instance, a device with 256 hardware voices meant it could play up to 256 channels, so a stereo sound would take 2 voices and leave 254 for mono sounds. OpenAL Soft doesn't consider the number of channels, so with a limit of 256 sources, a stereo sound would only take 1 and leave 255 for mono sounds. Perhaps the engine is getting confused by that, thinking it should be able to allocate up to mono_sources + stereo_sources*2
. In this case, stereo_sources is typically 1 by default, so it could allocate mono_sources + stereo_sources
and then get an extra "transient source" for EAX, as long as it doesn't try to play more than mono_sources + stereo_sources
at once.
from openal-soft.
Just playing around with configuration and increased the default 256 sound sources to 512 sound sources seems to have fixed the issue.
from openal-soft.
Interesting.I know little about coding but it sounds plausible. As far as I remember from owning an Xfi card, they were hardware limited to 128 sources. I'm happy to test any new implementation as EAX fascinates me.
from openal-soft.
Related Issues (20)
- Bioshock EAX support HOT 8
- [SOFT_events extension] Events are being dropped if the event queue overflows HOT 2
- openal-soft.org timeout HOT 2
- Device-less buffer support? HOT 6
- ALC_SOFT_system_events support HOT 4
- Dosbox i586 HOT 2
- Android library failing to build HOT 4
- [Possibly bug] Failed to compile on GCC 8.3.0 HOT 5
- New language binding: Freepascal/Lazarus
- Eager detection and usage of sndio can be problematic on Linux HOT 7
- Build failure when compiling as a CMake subdirectory with MinGW. HOT 1
- [Question] Is there any reason why SND_PCM_STATE_PRIVATE1 enumeration value unhandled? HOT 2
- [Suggestion] add airtable HRTF database link HOT 1
- No matching function for call HOT 2
- Looping sound won't stop mid-loop
- [Question] Idea of splitting the output channel; is this possible in the current API? HOT 1
- Support for XAudio2 via the Wine-4.2 compatibility layer HOT 10
- Set log callback HOT 2
- [Question] 16 speakers in Windows using AmbiSonics (without HDMI and Receiver) HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from openal-soft.