[wdmaudiodev] Core processor enters idle state while APO is processing audio

  • From: Dadi <dadiku@xxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Thu, 3 Apr 2014 01:00:38 +0300

Hi,

On few machines while audio is being played, the machine has entered an
idle state that caused our processing inside APOProcess to process too slow
and not return on time. This caused lost frames and bad noise has been
heard.

Our code is optimized and the above case is rare but still occurs on few
production machines. Note that we have three APOs running in memory (Render
MFX, EFX and capture MFX) simultaneously.

Is there a way to programmatically avoid such case?

We tried to set the power parameter GUID_PROCESSOR_IDLE_DISABLE and this
indeed prevented the processor to become idle and the problem didn't
reproduced. We can use that in LockForProcess (to set the flag) and
UnlockForProcess (to revert the old value of the flag).
But this way might not be the right way because this setting is a global
power system setting that overwrites the user's active power scheme. Also -
the user can modify the active power scheme at any time...

What is the best way (or the right way) to resolve it?
Also, isn't audiodg.exe responsible to protect the process thread from such
case?

Thanks,
Dadi

Other related posts: