On our project, FMOD is currently allocating about 10MB of data for streaming buffers, and other miscellaneous bits and pieces.
That seems like a lot to us, and the only bits we can positively identify are the six 512kB streaming buffers we have. We are going to experiment with reducing the size of each of those to see what we can get away with. But we’d like to find out what else FMOD is allocating, to see if we can work things differently to reduce the allocation.
So – do you have a list of the kinds of allocations and their approximate required by FMOD? Like – reverbs, events, filters, layers in events, max instances, that kind of thing?
It’s the bigger, multiple allocations that we are scratching our heads about – e.g. we have 8 allocations ranging between 108k and 250k, 31 allocations between 25k and 80k (with a lot hovering around 80k), 32 allocations of 18k, and 80 at 6k.
- PeteWard asked 10 years ago
512KB for streaming buffers is way too much. 128KB, even 64KB is enough for excellent stream quality ( check the API for setting the stream buffers size ). Also you need to check Max Streams Number for each sound bank in FMOD Designer. By default the value is 32 , again too much. 2 up to 4 is the maximum needed per sound bank. Think like this: How many streams playing at the same time you will need?
For example: 1 for Music, 1 for dialog, and 1 for environment sound … and 1 extra for just in case. So 4 streams is just enough … with about 128KB per stream you shouldn’t have more than 512KB allocated for streams.
I can confirm that such numbers work because we shipped 3 games ( xxx SKUs ) like this and worked just fine for us
- svetli answered 10 years ago
I recently added a chunk of code to go through all the projects, groups and events, calling getmemoryinfo on each thing, then writing this data out to a CSV file. That has identified a fair chunk of where our memory is going, and given us some ideas of where to save memory. I think we’re using about 15MB of overhead currently on Batman, and obviously I’m also looking at ways to save overhead memory constantly.
- a1psx answered 10 years ago
Please login first to submit.