I upgraded the version of FMOD to 2.02.11 in my project recently and started getting random FMOD_ERR_INTERNALs, and after installing various versions of FMOD it appears to be an issue introduced in 2.02.10. My code does the following:
- Create an instance of an event with the Steam Audio spatializer effect
- In an instance create callback, find the Steam Audio DSP and call setParameterData for the SIMULATION_OUTPUTS parameter.
- After playback has stopped, release the event instance.
The next time StudioSystem::update is called, it will return FMOD_ERR_INTERNAL and log the following:
FMOD: assertion: 'mImpl->mRefCount > 0' failed (C:\buildagent2\work\b8b6893b00c565e4\studio_api\src\fmod_effect.cpp:assert, 132) FMOD: System::update returned error 28. (C:\buildagent2\work\b8b6893b00c565e4\studio_api\src\fmod_asyncmanager.cpp:AsyncManager::asyncThreadLoop, 815) FMOD error: An error occurred that wasn't supposed to. Contact support.
Additionally, this can sometimes result in a crash in StudioSystem::release when shutting down, but this doesn’t always occur.
I’ve done a full trace log at FMOD log - Pastebin.com. I’m not 100% sure that this isn’t the result of something being poorly implemented in the plugin, but after going through the source of the plugin I’m not sure how it could cause this, and versions 2.02.09 and below still work.