Hi,
I´m working on a UE5 project (FMOD 2.03.03) with a big map and up to 396 voices / 388 instances - most of them are associated with “walltorches” events across the scenario => 310 instances / voices, started at the beginning of gameplay (and looping indefinitely). Despite the fact I´ve set the max instances of this event = 4, Stealing Virtualization (so most of these instances are virtualized), I´m having poor CPU Performance (Update = 70% and Mixer around 57%), as shown in the Profiler images bellow. Any ideas how I could optmize performance? Thanks.
Hi,
Fundamentally, while FMOD’s virtualization system is a strong optimization tool, it isn’t a replacement for a culling system. The reason for the poor performance is that while audio processing and mixing isn’t performed on virtualized instances, the rest of Studio’s processing still is - i.e. API commands, playback position and state, 3D attributes, updating parameters, modulation/automation, and so on. ~300 virtual voices, while producing no audio output, is still a lot of voices to be processing every update interval.
I’d recommend implementing some sort of distance-based culling system for the walltorches in your UE5 project, which should cut down on the number of virtual voices being processed, and hopefully yield better performance. Consider using the max distance event property of the walltorch event as a baseline for where to start culling, and adjust from there as needed.
Hi Leah,
Thank you very much for your reply. That makes a lot of sense now. Let me test this solution with the programmers and get back to you asap.
Thanks again.
1 Like