http://bugs.winehq.org/show_bug.cgi?id=20915
--- Comment #9 from Chris chris.kcat@gmail.com 2009-12-22 14:51:29 ---
From the testing I've been able to do, it appears to be an issue in ALSA, its
drivers, or hardware. Switching backends around shows vastly different times to do the actual mixing (measured in real-time; Pulse stays under 10ms, while OSS gets up to 20 to 30 and ALSA spikes to 130, on occasion).. and this is completely backend-independent code, handling the same scene. The spikes are not related to the audio processing being done.
If I had to make a guess at the cause, I would say something OpenGL (not AL) does in these scenes is causing spurious wake-ups with ALSA, stalling the thread that's mixing. The mixing is done while the lib is locked, which causes the main app to be blocked when it tries to make an OpenAL call.
That's only a guess though, and I could be wrong. But I don't see anything wrong on OpenAL's side.