[Openal-devel] Hardware-accelerated mixing in ALSA back-end?

Chris Robinson 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 mailing list