|
list_type & | queue (StealableQueue destination) |
|
uint32_t & | longest_runs (size_t idx) |
|
void | QueueForReclamation (StealableQueue queue, Stealable &stealable) |
| add a stealable to end of given queue
|
|
uint32_t | ReclaimMemory (MemoryRegion ®ion, int32_t totalSizeNeeded, void *thingNotToStealFrom, int32_t *__restrict__ foundSpaceSize) |
|
|
using | list_type = etl::intrusive_list<Stealable, Stealable::link_type> |
|
|
std::array< list_type, kNumStealableQueue > | reclamation_queue_ |
|
std::array< uint32_t, kNumStealableQueue > | longest_runs_ |
|
◆ QueueForReclamation()
void CacheManager::QueueForReclamation |
( |
StealableQueue | queue, |
|
|
Stealable & | stealable ) |
|
inline |
add a stealable to end of given queue
Alternatively we could add to start of queue - logic is that a recently freed sample is unlikely to be immediately needed again. This increases average and max voice counts, but has a problem with medium memory pressure songs where it tends to prioritize earlier sounds in the song and makes it possible for later songs to break in. This occurs since there's no mechanism to determine if a sample is going to be used in the remainder of the song, so if there's not enough memory pressure for all stealable clusters to get reclaimed the same few just get put on and off the list repeatedly
The documentation for this class was generated from the following files: