The Platform Timer Resolution Requirement to Pass Power Checker

The Platform Timer Resolution Requirement to Pass Power Checker

chang-li's picture

Are there any DirectX games of Windows 7 have passed Intel's Power Checker?

To ask an APP change Platform Timer Resolution is unreasonable.

An User Level App can not change Platform Timer Resolution. It is the Operating System and Driver's duty. The default Timer Resolution of Windows is 15.6ms. But when an App such as a game used DirectX or multimedia functions, the Platform Timer Resolution is set to 1ms. That is for performance and accurate time control of media playback. It is good for power effeciency to set the timer resolution as 15.6ms when a player or a game is in idle. But how could an app programmer to do this? There is no API to set Platform Timer Resolution. A driver programer can do this by using ExSetTimerResolution. Intel can open an API through its driver but it opens a security hole as well.

Note that the result of changing the clock interrupt frequency is
system-wide and can have a severely negative effect on system
performance. Also note that higher clock interrupt frequencies can
shorten a system's battery life.

In summary to apply Platform Timer Resolution as a metric for Power Checker Testing is unreasonable. It is not the duty of an App to modify the Platform Timer Resolution.

6 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.
Juan Montoya's picture

Actually last year I manage to get a DirectX application to pass the power checker test. It was developed in a specific 3D engine which had a command for that, sadly the way to do it was very specific for the development tool and took a while to find.

chang-li's picture

I tried to applied other methods of Win32 API to change time resolution but failed. The problem is that I changed the time resolution value but in the power check there was no any changing. Because I also used DirectShow, I think my modification was ignored. To support real-time sound such as MIDI sound in Windows 32, the Platform Timer Resolution must be 1ms I think. The problem of Windows SDK is to adjust PTR in dynamic. Unfortunately to Win32 it is not the case. In Windows RT PTR default value is 15.6 however it dd not support MIDI sound in native anymore. My another Windows Metro App passed the power checker easily without do anything on Platform Timer Resolution. All my Win32 apps can not pass power checker.

May be you can support Intel to provide a small dll for app developers to change PTR. But I still think it is not the duty of app developers to change PTR for power saving. The final solution should be on Microsoft to upgrade its Win32 OS and all its fundamental packages.

Juan Montoya's picture

I agree, if there are conditions for the power checker that will force you to reduce your application features, then there's something that must be done by Intel to remove these limitations or at least work around them.

iliyapolak's picture

@chang-li

Can you QueryPerformanceFrequency/QueryPerformanceCounter functions for your directX app?

Such a apptoach for obtaining precise timing for directX application was advised by Frank Luna in his books.

chang-li's picture

"Can you QueryPerformanceFrequency/QueryPerformanceCounter functions for your directX app? Such a apptoach for obtaining precise timing for directX application was advised by Frank Luna in his books."

I tested QueryPerformanceFrequency the value is 2435.867MHz. Is this related to the Platform Timer Resolution modification? 

Login to leave a comment.