[wdmaudiodev] Re: Creating threads with high priority in APO

  • From: Frank Yerrace <Frank.Yerrace@xxxxxxxxxxxxx>
  • To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Wed, 17 Dec 2014 21:02:21 +0000

I’d like to understand this more deeply, if you don’t mind.

Can you elaborate on your reason for creating additional threads, and exactly 
what it addresses for you? Will these threads complete all their work before 
the APOProcess call returns, or will they continue to do work after the 
APOProcess call? Is this an attempt to have more consistent processing delay 
within each APOProcess call rather than “bursty” (where some APOProcess calls 
finishing quick while others consume lots of MIPs)?

Feel free to respond directly to me if you prefer.

Regards,
Frank Yerrace
Microsoft


From: wdmaudiodev-bounce@xxxxxxxxxxxxx 
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Dadi
Sent: Wednesday, December 17, 2014 12:59 PM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Re: Creating threads with high priority in APO

Hi Matthew,
Thank you, we will try it.
Dadi

2014-12-17 22:51 GMT+02:00 Matthew van Eerde 
<Matthew.van.Eerde@xxxxxxxxxxxxx<mailto:Matthew.van.Eerde@xxxxxxxxxxxxx>>:
Have the new thread register with the Multimedia Class Scheduler Service. This 
is the same thing that AudioDG.exe does for the APOProcess(…) thread.

http://msdn.microsoft.com/en-us/library/windows/desktop/ms684247(v=vs.85).aspx

MMCSS will give the thread regular boosts to high priority at periodic 
intervals.

From: wdmaudiodev-bounce@xxxxxxxxxxxxx<mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx> 
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx<mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx>]
 On Behalf Of Dadi
Sent: Wednesday, December 17, 2014 12:45 PM
To: wdmaudiodev@xxxxxxxxxxxxx<mailto:wdmaudiodev@xxxxxxxxxxxxx>
Subject: [wdmaudiodev] Creating threads with high priority in APO

Hi,
We are trying to improve our APO processing performance by creating additional 
threads and then do parallel processing for some of our effects. However we 
found that the highest priority we can have for new threads we created (using 
CreateThread) is base priority 15 while the base priority of the main 
processing thread is 22.
Unfortunately we cannot use the new threads if they will not have priority at 
least as the main processing thread, we cannot gain any benefit from them this 
way so we need to create threads with priority 22 or more.
How can this be achieved?
Thanks,
Dadi

Other related posts: