FMOD Studio version 2.02.17 (Linux, Windows, macOS)
I believe fmodstudiocl
has a serious memory bug and architectural problems. The tool succeeds, but sometimes crashes randomly for no apparent reason, which makes it unsuitable for any automated build system. Sometimes, it even displays FMOD Studio’s crash report dialog box requiring user input and stalling the entire process. For a CLI program, this behavior is absolutely atrocious and potentially kills any scripted use-case.
It’s not the tool’s only problem either. After successfully building the bank files, the program waits for a few seconds for no apparent reason, then always quits with the following message:
[ERR] assert : assertion: 'gSystemInitCount == 0' failed
Killing the tool right when the Build completed successfully.
message pops up yields correct bank files (checked with diff). That made me 100% sure the extra wait time is unnecessary and a result of an error, possibly even linked to the crash mentioned above.
Because of that, I decided to run the tool under Valgrind. Unsurprisingly, Valgrind reported segmentation fault where expected, right after the Build completed successfully.
message. See the log file attached below:
fmodstudiocl-valgrind.txt (20.7 KB)
This confirms that the tool’s instability is a result of a dire programming error and renders it virtually unusable in any application requiring predictable results.
The most bizarre thing I found, however, is that the executable is also linked to UI libraries (especially Qt). Hence, running it on a minimal GUI-less Linux build server is needlessly difficult. Why is that? Why can’t the tool be a minimal executable focused solely on building the banks? FMOD Studio UI could then also use that tool as well, making the process more predictable, and the core functionality neatly separated from the UI (possibly even distributed separately as a smaller package for build-only oriented setups).
I truly hope the issues above will be fixed soon (the crash issue also happens in version 2.03.07). Meanwhile, is there any alternative way of building the banks predictably in automated build systems?