Wwise SDK 2022.1.7
The following sections list and describe the changes to Wwise between version 2022.1.1 and version 2022.1.2.
Platform-specific information can be found here:
For earlier versions, please refer to Previous Release Notes.
AK::MemoryMgr, AK::MemoryMgr::TrimForThread, has been added. This function gives game integrations additional opportunities to free up thread-local resources when threads enter periods of inactivity. For Wwise's built-in memory allocator, rpmalloc, this will finalize all deferred free operations on the thread and return thread-local heaps to the global store, to be later reused by other threads. This function is called after execution of
EventMgrthread, and after
CAkThreadedBankMgrprocesses a set of commands on the
BankMgrthread. We recommend that game integrations call this function on worker threads occasionally, such as after returning from execution of the
AK::JobMgrso that when a job has all of its dependencies satisfied, it is scheduled for execution immediately, instead of being enqueued and later dequeued. This should reduce the overhead of the job manager system, especially when running voice graphs containing many small busses, and improve execution of jobs due to improved cache utilization in many cases.
CAkAudioMgr::Perform, now runs as jobs of type
AkJobType_AudioProcessing. For game integrations that have set up support for the Wwise Job Manager, even with just one worker of type
AkJobType_AudioProcessing, this should eliminate almost all of the work performed on the
AK::EventMgrthread, and instead let the entirety of the sound engine tick run on game engine thread pools. For example, this should eliminate performance issues that work being performed on the game engine thread pools might have experienced due to being pre-empted by the
AK::EventMgrthread, which should improve the overall consistency of game engine performance.
AK::JobMgrno longer issues worker requests. Most notably, this should eliminate many worker requests initiated by
_CallGlobalExtensionsAsyncthat would not actually have any work to be performed.
AkArray::Reservesometimes increases in size when not required.
AK::SoundEngine::PostMIDIOnEvent()fail to release some allocated memory.
AK::SoundEngine::ExecuteActionOnEventperform action on all active MIDI items (starting with
AK::SoundEngine::PostMIDIOnEvent), regardless of the target of the Event's Actions.