Community Q&A

Welcome to Audiokinetic’s community-driven Q&A forum. This is the place where Wwise and Strata users help each other out. For direct help from our team, please use the Support Tickets page. To report a bug, use the Bug Report option in the Audiokinetic Launcher. (Note that Bug Reports submitted to the Q&A forum will be rejected. Using our dedicated Bug Report system ensures your report is seen by the right people and has the best chance of being fixed.)

To get the best answers quickly, follow these tips when posting a question:

  • Be Specific: What are you trying to achieve, or what specific issue are you running into?
  • Include Key Details: Include details like your Wwise and game engine versions, operating system, etc.
  • Explain What You've Tried: Let others know what troubleshooting steps you've already taken.
  • Focus on the Facts: Describe the technical facts of your issue. Focusing on the problem helps others find a solution quickly.

0 votes
I would like to set my own thread affinity for the various threads created by the Sound Engine. How can I achieve this?
in General Discussion by Benoit S. (Audiokinetic) (16.0k points)

1 Answer

0 votes
 
Best answer

You can control the initialization settings for four threads created by the Sound Engine:

  • AkDeviceSettings.threadProperties controls the IO thread
  • AkPlatformInitSettings.threadLEngine controls the Audio thread
  • AkPlatformInitSettings.threadBankManager controls the Bank Managing thread
  • AkPlatformInitSettings.threadMonitor controls the Monitor thread

You can set the affinity mask in each of these four structures.

by Benoit S. (Audiokinetic) (16.0k points)
Documentation for this subject is a bit scarce, but as I understand it, the thread affinity is an unsigned int containing a bit mask, where bit #x correspond to CPU core x, and you specify which CPU cores you want to use by setting the corresponding bit.

For example, if you want to only run on core 0, you specify:

dwAffinityMask = (1 << 0);

And if you want your thread to run on cores 3-5, you specify:

dwAffinityMask = (1 << 3) | (1 << 4) | (1 << 5);
...