Since switching from OpenAL to FMOD a number of users of my game have been reporting lower frame rate (increased CPU usage) and/or crashes. I’m not able to reproduce these on my machine so I resorted to profiling and memory leak checking to see if I could find anything. Both the profiler and memory leak checker are saying that there’s a problem with FMOD_MyEars_GetError. This is despite the fact that I am not using MyEars. See below:

[code:220kj8hc]Error #1: UNINITIALIZED READ: reading 0x0389c02c-0x0389c030 4 byte(s)

0 KERNEL32.dll!GetConsoleMode +0x5a (0x76521382 <KERNEL32.dll+0x11382>)

1 fmodex.dll!FMOD_MyEars_GetError +0x160c7 (0x61cf39b8 <fmodex.dll+0x939b8>)

2 fmodex.dll!FMOD_MyEars_GetError +0x16152 (0x61cf3a43 <fmodex.dll+0x93a43>)

3 fmodex.dll!FMOD_MyEars_GetError +0xcb3e (0x61cea42f <fmodex.dll+0x8a42f>)

4 fmodex.dll!FMOD_File_GetDiskBusy +0x573d (0x61cdc45e <fmodex.dll+0x7c45e>)

5 fmodex.dll!FMOD_MyEars_GetError +0x13ef4 (0x61cf17e5 <fmodex.dll+0x917e5>)

6 fmodex.dll!FMOD_MyEars_GetError +0x14531 (0x61cf1e22 <fmodex.dll+0x91e22>)

7 fmodex.dll!FMOD::SystemI::createSoundInternal +0x3e3a (0x61d2912b <fmodex.dll+0xc912b>)

8 fmodex.dll!FMOD::System::init +0x2a (0x61cd5f5b <fmodex.dll+0x75f5b>)

9 fmodex.dll!FMOD_System_Init +0x45 (0x61cf5616 <fmodex.dll+0x95616>)

10 StartFMOD [c:\users\ryan clark\desktop\necrodancer\necrodancer.build\glfw\main.cpp:3694]

11 bb_necrodancergame_NecroDancerGame::m_OnCreate [c:\users\ryan clark\desktop\necrodancer\necrodancer.build\glfw\main.cpp:9972]

Note: @0:00:26.263 in thread 9760
Note: instruction: lock cmpxchg %edx (%ecx) %eax -> (%ecx) %eax[/code:220kj8hc]

The profiler is saying that a lot of time is being spent in FMOD_MyEars_GetError and FMOD_File_GetDiskBusy. I am initializing FMOD the way it is shown in the tutorials (and I have been using FMOD for years). Initializing with FMOD_INIT_DISABLE_MYEARS_AUTODETECT has no effect. Explicitly setting speaker mode to FMOD_SPEAKERMODE_STEREO has no effect. I even tried downgrading to an older FMOD version before MyEars was integrated. This got rid of the calls to FMOD_MyEars_GetError, but the repeated calls to FMOD_File_GetDiskBusy persist.

Any idea what could be causing this? Even if all I do is…

[code:220kj8hc]FMOD_SYSTEM *systemFMOD = NULL;
FMOD_System_Init(systemFMOD, 100, FMOD_INIT_NORMAL, 0);[/code:220kj8hc]

…and make no further FMOD calls, I see these MyEars/GetDiskBusy issues.

Thanks for any insights you may have!

  • You must to post comments

Thanks, Nick! I’ll give that a shot.

  • You must to post comments

Hi Ryan, the callstacks you’re seeing aren’t valid because your don’t have the PDBs for visual studio to generate the correct ones. If you wish to profile FMOD you should use the profiler that comes in the installer.

  • You must to post comments

I get the same "UNINITIALIZED READ" results (and all the calls to FMOD_MyEars_GetError and FMOD_File_GetDiskBusy) if I use one of the simple FMOD examples like "playsound".

I’m using Visual Studio Express on Windows 7.

  • You must to post comments
Showing 3 results
Your Answer

Please first to submit.