Hi All,
I've noticed that simply using audio on our phone slows it down a lot, and it appears to be an audio driver/hardware issue rather than a software issue. Let me explain my findings:
1) Play, for example, FPSE. The emulator is much slower with sound enabled. You would expect this, however, if you go into the menu and come back out, the emulator runs much faster for a few frames- with no sound. You might say it's just not processing audio, but the emulator itself must be, it's the small delay between sound generation and actually hearing it which is when everything runs faster. Once you actually hear the output, then everything chugs along again. It's as if the audio driver is waiting for the hardware or something, and holding up the whole phone for a few milliseconds here and there.
If it was the actual emulation that was causing the slowdown, then you'd get a consistently slow emulator, even when sound hasn't started playing yet (because it would still be emulating- it's just being buffered for a small period before you hear it.)
Get what I mean?
The same thing goes with other emulators I use. Nes, Snes, C64- they're all noticably impaired when audio is enabled, although only on the more CPU intensive apps does it create a bigger problem.
Feel free to debunk my findings, but logically it makes sense that theres a delay when processing audio, that is larger than simply just the extra CPU usage of sending audio.
What can we do about this- I'm a pretty solid developer, though I haven't touched drivers before (bar writing them for old DOS games...) - Any dev here fancy taking a look at the cause? I don't mind diving in and taking a look at the situation- do we have audio driver source? I suspect this would be more useful to us than an RT kernel- which was my previous idea.
My idea: Part one: perhaps writing a null audio driver , or disabling audio, to test if it really is a driver/hardware issue, if apps speed up with this, then there's a definite delay caused when processing the audio, and that delay is larger than the cost of emulating the sound chips in the emulated machines.
If the null driver does give a speedup (although no audio) then we have something worth looking at and other steps can be decided!
What do you think?
[edit]
Actually, disabling Soundfix in the kernel gives a pretty nice speedup too, What does Soundfix actually do to fix it, and maybe we can create a "gaming mode"?


LinkBack URL
About LinkBacks
Reply With Quote

Bookmarks