XBOX Crash related to FMOD::System_GetDebugLevel

Hello,

We are having random crashes on our xbox series and xbox one release builds (not in developement builds).

We are using unity 2021.3.21f1, FMOD Studio Unity Integration 2.02.11

FMOD::System_GetDebugLevel, this method seems to be present on every thread and seems to be the cause of the issue.

FMOD Logs are disabled in FMOD settings.

Is there anything we can do?

Thanks


please see dump file linked

We don’t have a GetDebugLevel function in our API, so this crash must be coming from Unity’s audio system, which is based off of an old version of the FMOD API and still has the FMOD:: namespace. Can you please confirm that you have disabled Unity Audio?

Unity audio is disabled in the project settings. Is there any other things to do to effectivly stop the calls of FMOD::System_GetDebugLevel that cause the crash?

We disabled all our play/stop of fmodevent (the banks are still loaded/unloaded), and the crash is still there (with the same kind of dump).
It seems that FMOD use all possible threads to update something.
Please note that it only happens on Xbox series and xbox one. Maybe this method is only implemented on the xbox version of the API?
image (4)

Also, the FMOD namespece definitivly exists with the gamecore implementation of FMOD (as shown in screenshot)


Thank you for confirming, it looks like you have everything configured correctly.
System_GetDebugLevel was removed from our API in 2006, and looking at the offsets in the callstack again it appears to be a red herring anyway- +5e75f0 is around 6mb beyond the System_GetDebugLevel function, so the real call site does not appear to be anywhere near this System_GetDebugLevel function, and I cannot see anything to indicate this crash is occurring inside FMOD.

Yes, we have an FMOD C# namespace in the FMOD for Unity integration, but Unity’s audio API still uses the FMOD:: C++ namespace as well, which can create lots of confusing situations like this.

The main suspicious thing I’m seeing in your crash dump is that your main thread, gc thread, and most of your job worker threads are waiting on locks, which suggests a possible deadlock. I can see it crashing inside a thread called “Job.Worker 2”, which is calling into one of the Xbox libs. If you could please tell me your GDK version I might be able to get pdbs for it and see what is crashing specifically.

Hi Jeff,

We’re using GDK : 2022.10-GDKXUpdate1-10.0.22621.1877

Thank you for your help

Bests

Thank you for the additional information- I can now see it’s crashing inside a DX12 texture sampling copy function, trying to read some memory that appears to be well outside the bounds of the program. All of the waits I mentioned before are just worker threads waiting for work.
Looking at the release notes for 2021.3.22f1, I see there might be a fix for this issue:

DX12: Fixed a crash due to copying sampler descriptors. (UUM-29343)

I think your best bet would be to update Unity to 2021.3.22f1 and see if that fixes the issue.
Otherwise, this doesn’t seem to have anything to do with FMOD unfortunately, so I don’t think I can be much more help.

Hi Jeff, thank you very much for investigating.

Indeed since the installation of version 2021.3.22f1, we no longer have any crash!

Thanks again for your help.

1 Like