Hmm, everyone is talking about global warming. Let's do a small thing in SL, too. But it's not just that, I want my CPU and GPU to cool down a little bit when they can.
Currently there is a 5 (5.6?) ms sleep in each draw. Another 40ms is added if the viewer is not in foreground (focus).
I would like to have three configurable sleeps:
- "Running priority" - draw sleep (0-10ms) as a yield/nice feature
- "Background Power Saving" - 0-100ms (default now 40, but could be changed to 50)
- "Away Power Saving" - 0-100ms (default 50?)
Away power saving would disregard the Character AFK check. It would increase towards the set value as keyboard/mouse inactivity time approaches the AFK time setting in preferences. I would make it so it increases in discrete steps every minute, other approaches are possible. The background and away values would simply add up for the sleep, which would yield less than 5 fps when away for a long time and all settings maxed. Sounds reasonable to me.
Where to put this? A new tab in Preferences would be just fine. Make it visible that you care about power saving.
Is this connected to graphics performance settings? I don't think people will complain if fps drops when not active. The "always" sleep is small and it affects mostly those with very high fps, even if "unintentionally" set to max. Someone with 5 FPS would not even notice the extra couple of miliseconds. Therefore, I think no connection is needed between power saving and graphics options. This goes more with away time.
See debug setting BackgroundYieldTime, set it to 100 and enjoy more CPU for other applications, lower consumption, lower fan speeds and more trees in rl...