Latenly I have been paying extra attention to FMOD’s cpu-usage in our game to verify that the soundsystem stays within the given budget. According to the docs the update figure should be generally low and stay below 1%. Mostly this is the case for us but in intensive situations (combat etc) it can even go above 2% which feels a bit alarming. I know that your first answer to this would be that we upgrade to 4.18 and we are about to do that. Still, I’m more than sure that even though there might be optimizations that will lower the value it will still be too high at times and this has to be adressed. So, what I wonder is basically where to look for optimizations. Should we try and reduce the number of layers in our events or the number of params or are there other things to look for? What’s the most isse to focus on?
- Frohagen asked 10 years ago
We are in fact using FMOD’s geometry engine but on a small scale. I would say we have about 4 or 5 geometries (boxes or planes) active at once and I assume that shouldn’t be too much or a problem, or? When you say it’s obvious how to optimize geometry I assume you mean that this would be done by cutting down the amount of polygons.
- Frohagen answered 10 years ago
We have done a bit of optimization since 4.12, reducing state changes, unblocking stream logic and the like, but generally the most intensive things in the event system would be
virtual voice management. This should be totally non blocking now, maybe you had streams swapping in and out which could have blocked in 4.12. Streams should be high priority so that they dont swap, unless you really intend it to be this way.
geometry – the optimizations for this should be obvious, but you’re probably not using this
event system parameter updates. Curve calculations are expensive so changing parameter curves to linear segments can improve performance. We can also fix this ourselves with lookup tables etc, we’ll be doing some more of that later.
I wouldnt go changing events just yet, i’d like to see if you could profile your update call using your game data, and send it to us at email@example.com and we can do some targeted optimizations for you. (and for the benefit of future versions)
Please login first to submit.