SL-16182: Offload audio decoding from the main thread to the general work queue.
The work queue callback binds "this". This is deemed safe due to current dependencies, but see the associated comment in the return callback. There was some trial and error to get a this-binded lambda to compile. Due to LLVorbisDecodeState writing to disk off-thread, limit audio decodes proportional to general worker thread count. Guess the thread count for now.
Showing
- indra/llaudio/llaudiodecodemgr.cpp 214 additions, 119 deletionsindra/llaudio/llaudiodecodemgr.cpp
- indra/llaudio/llaudiodecodemgr.h 7 additions, 8 deletionsindra/llaudio/llaudiodecodemgr.h
- indra/llaudio/llaudioengine.cpp 47 additions, 58 deletionsindra/llaudio/llaudioengine.cpp
- indra/llaudio/llaudioengine.h 36 additions, 33 deletionsindra/llaudio/llaudioengine.h
- indra/llaudio/llaudioengine_fmodstudio.cpp 7 additions, 7 deletionsindra/llaudio/llaudioengine_fmodstudio.cpp
- indra/llaudio/llaudioengine_fmodstudio.h 1 addition, 1 deletionindra/llaudio/llaudioengine_fmodstudio.h
- indra/llaudio/llaudioengine_openal.cpp 2 additions, 2 deletionsindra/llaudio/llaudioengine_openal.cpp
- indra/llcommon/workqueue.h 4 additions, 4 deletionsindra/llcommon/workqueue.h
- indra/newview/llappviewer.cpp 1 addition, 2 deletionsindra/newview/llappviewer.cpp
- indra/newview/llstartup.cpp 1 addition, 1 deletionindra/newview/llstartup.cpp
- indra/newview/llvieweraudio.h 0 additions, 2 deletionsindra/newview/llvieweraudio.h
Loading
Please register or sign in to comment