We are testing the performance difference between various sound engines.
We made a test app that draws some 3d boxes and balls using a simple 3D engine, and then we rapidly trigger X amount of sounds per frame.
We have a strange thing happening when we tell FMOD to mix through hardware.
With sound turned off the app runs at 32 fps.
Here are the FPS when we trigger 28 sounds on every frame…
Direct Sound Hardware Mixing = 27 FPS
Direct Sound Software Mixing = 27 FPS
FMOD Software Mixing = 31 FPS
[b:2k1epr5g]FMOD Hardware Mixing = 20 FPS and the app slowly slows down to 1 FPS over a period of 5 minutes!!!![/b:2k1epr5g]
The other tests sit firmly at their respective FPS.
Has anyone else come across this problem?
- nozehed asked 15 years ago
[quote="brett":fp2amnfy]so anyway, what soundcard is it? did you try the maxchannels thing?[/quote:fp2amnfy]
we had this problem on SB Audigy and on some onboard card as well. I will try setting max channels later on and will post the results
[quote="brett":q1gwbnpf]It just calls directsound in the HW3D case.
The difference is that we use LOCDEFER and dx voice managment, your directsound code probably didnt, so i would suspect a driver bug.[/quote:q1gwbnpf]
In our DirectSound code we use LOCHARDWARE if the user requests hardware sound. We found in the past that if Direct Sound decides to mix at least one software buffer the performace suffers and so does the quality (the sw buffer stands out from the rest).
Why did you decide to use LOCDEFER instead of forcing it into LOCHARDWARE.
[quote="brett":2m9dqn3y]you have to use locdefer, otherwise there is no voice management.
if you dont, you cant use duplicatebuffer and are stuck with 1 sound = 1 voice like the old days in dx5[/quote:2m9dqn3y]
But you can create buffers with DSCAPS_LOCDEFER, duplicate the buffer and then use DSBPLAY_LOCHARDWARE to get voice management.
Please login first to submit.