在 Audiokinetic 社区问答论坛上,用户可对 Wwise 和 Strata 相关问题进行提问和解答。如需从 Audiokinetic 技术支持团队获取答复,请务必使用技术支持申请单页面。

How can I control thread affinity for my platform?

0 投票
I would like to set my own thread affinity for the various threads created by the Sound Engine. How can I achieve this?
最新提问 5月 7, 2014 分类:General Discussion | 用户: Benoit S. (Audiokinetic) (16,020 分)

1个回答

0 投票
 
已采纳

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.

最新回答 5月 7, 2014 用户: Benoit S. (Audiokinetic) (16,020 分)
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);
...