High CPU usage from Virtualize

Virtualize is causing high CPU usage. I was able to find similar posts in the forums before, but I’m posting this question because I want to know whether this is normal behavior and what the solution is.

  • There are 30 torches placed on the map.
  • The torches have a max distance of 15m, so you have to get very close to hear them.

While profiling, the torches’ CPU usage was unusually high, so I looked into it. Even when I set Max Instances to 1, torch was always using 0.45% or more CPU, so I assumed it was a problem with the DSP or encoding settings.

But the culprit turned out to be Virtualize. When I use Virtualize for stealing, the torches always use 0.3%–0.6% CPU even when I move to an area with no torches. As you can see in the screenshot above, there isn’t much difference in CPU usage between the state where 30 Active Instances are generated (because I didn’t limit the instance count) and the state where Virtualize limits it to 1–2 instances.

Is this normal behavior? I’d like to know whether it’s normal to use 0.3% CPU even when I go to the edge of the map where no torch is visible. This isn’t resolved even though I added a playback Condition to the torch Instrument so the sound only plays between 0–20. To fix this problem, do I need to make it so the sound only plays once I come within a certain distance using an Unreal Blueprint?

Please save me from these torches.

Just to make sure there aren’t any virtual voice bugs that might be affecting you, can you please tell me what version of FMOD you are using?
I expect this small difference is due to the Core API virtual voice system making further optimizations for the “No Stealing” case, which is why the difference only seems negligible. If you increase the torch count to something like 300 I would expect the difference to be more obvious.

Playing events outside their max distance is a common optimization for Unreal- we actually intend on building this into the Unreal Integration in a future version. Otherwise if you uplod your Profiler capture to your FMOD Profile I can take a look and see if any other optimizations can be made?