[Openal-devel] Hardware-accelerated mixing in ALSA back-end?
chris.kcat at gmail.com
Fri Jun 1 16:34:25 PDT 2007
On Friday 01 June 2007 12:46:29 pm Garin Hiebert wrote:
> If someone wanted to do one implementation which supported both software
> and hardware mixing, the place to start would be the open source Windows
> code. That code always had to support both paths (to handle both DS3D as
> well as the software backends), so there is a very clear separation between
> OpenAL state management and the rendering...
I'm not sure it'd be worth to do software and hardware mixing in a single
implementation. Different hardware implementations will require completely
different paths and code structures, which would quickly bloat and obfuscate
the code. The Windows code only had two real paths, a generic DS3D one, and a
generic software mixing one, and still it can be a bit hard to follow.
Seperate I/O backends are a little different, since that just changes how the
post-mixed data is streamed to the card.. that doesn't add a lot of
complexity. But for proper hardware implementations, the storage of sources
and buffers, setting their attributes, and all that would be hardware/system
specific. If someone wants to make an accelerated ALSA implementation, it'd
probably be best as part of ALSA itself, or some kind of add-on to ALSA. Not
everything that the SI runs on has ALSA either, don't forget. The SI
(theoretically) runs on Windows, but there's no DS3D accelerated path. Given
the wide non-system-specific scope of the SI, I don't think specific
accelerated backends are something it should strive for.
All IMO, anyway.
More information about the Openal-devel