Yes, that's exactly right. Raising the timer resolution on Win32 causes increased power consumption, as has been documented elsewhere.
I did some investigation into this by way of a game I wrote using Pyglet, and I found that the following seems to be the best advice: - Turn ON the higher timer resolution when the game starts and during game play, since you need it during that time. - Turn OFF higher timer resolution when the player pauses the game, or when you're not running other active animation events that need the higher resolution. Turn it back ON when play resumes. - Turn OFF higher timer resolution when the program exits. One thing I also tried was to toggle the higher timer resolution on and off for each execution of the draw loop -- on right before the sleep function, then off again. Microsoft advises against this, however. I tried it and while it did seem to work, it also didn't provide any discernible advantage over simply turning it on and leaving it on during active gameplay, and then toggling it off when the game paused or exited. So, again, my thought is to provide some explicit mechanism for this in Win32, and to couple it with some advice about how to deploy it. On Sunday, January 28, 2018 at 10:27:16 PM UTC-5, Benjamin Moran wrote: > > Hi Serdar, > > Yes, this is definitely something I would like to explore. If I > understand it, raising the timer resolution will affect how Windows idles, > which could have a significant (or not?) impact on power usage. Is that > right? This would be important on laptops of course, so as you said it > would need to be a user choice. > I would be interesting to compare this to busy-waiting, with regards to > accuracy and system load. > > > > > On Sunday, January 28, 2018 at 12:03:21 AM UTC+9, Serdar Yegulalp wrote: >> >> On Win32, you need to raise the timer resolution to get truly accurate >> sleep on a 1/60 second basis. I've written some functions to do this >> manually, but I'm thinking we might want to provide a way to do this >> natively in Pyglet. >> >> The big caveat is that the user should have some way to control it. If >> you have an app that doesn't need that granular a level of timing, you're >> not supposed to raise the timer resolution, since that's >> resource-intensive. You turn it on when you need it and turn it off when >> you don't. This also eliminates the need for busy-waiting, since you can >> get extremely precise wait times this way. >> >> Perhaps for 1.4 I could provide a pull request where there's a clock >> setting that allows toggling of the use of the higher timer resolution on >> demand. >> > -- You received this message because you are subscribed to the Google Groups "pyglet-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/pyglet-users. For more options, visit https://groups.google.com/d/optout.
