We stumbled upon a weird performance issue on a new game running on FMOD 2.02.x (which we didn’t have on our previous title on FMOD 2.00.x). Our Studio setup and game code remain the same.
Every time we do…
// using the raw C# C-API wrapper eventInstance.start(); // non persistant event eventInstance.release();
… there is a noticeable CPU freeze for a few frames.
But there’s something more puzzling to this:
- sample data are properly loaded before playing
- after some time (not dependent to further plays), the freezes disappear;
- after playing an unreleased event just once (which will freeze), any subsequent plays (being released or not) will not freeze;
- it seems bound to which CPU core FMOD is currently running on;
- the freeze happens upon playing, not upon stopping (verified with longer sounds)
So our current workaround is to play a dummy event without releasing it when we initialize FMOD, and then no freeze will occur on subsequent plays (being released or not).
Is there anything that we missed?
EDIT: tested throughout 2.02.06 to 2.02.11 with a consistent behavior.