There are more guid than slider's 3 overlays. On ryzen there's also a setting called "AMD Power Slider" with 4 overlays, I don't know how that's different to the built in slider. OEM and chip vendors and MS are landfilling weird things in registry, making my laptop not being what I want it to be.
Those 3 GUIDs are "standard"/fixed so I can use them in the code of PSE. Other OEMs stuff I can`t. Upd: https://www.reddit.com/r/Amd/comments/uj8ljr/amd_power_slider_in_the_power_plan_options/ Do you see that setting "AMD Power Slider" in your power plan settings in Windows (and in PSE)?
If "ActiveOverlayAcPowerScheme" & "ActiveOverlayDcPowerScheme" & "ActivePowerScheme" are on the 3 standard power schemes, am I on the right track? Yes, but I don't know what guids do they correspond to, or how they could affect the standard power schemes.
If you mean registry keys/values then "ActiveOverlay..." should point to active overlay (one of 3 standard overlays or maybe one of all registered overlays) on AC and on DC power. "ActivePowerScheme" should point to active power plan (one of plans present in system). PSE should show GUIDs.
They are in those values, but I am worried if OEM and chip vendor are overriding them somewhere else in registry. I mean, I know AMD power slider's guid from PSE, but don't know what guids/schemes do the 4 overlays in AMD power slider point to. btw, I found where the power profiles are, but they don't seem to have ac/dc values to modify like power schemes, unlike what the doc says.
@mbk1969 Which path has higher priority in power settings? HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\[ActivePowerScheme_GUID] I notice that PSE will only apply values in the second path if applicable, if not, it will go to the first path. There are also some registry keys have prefix "prov" in ac/dc index, how about their priority? If I understand correctly, the problem going on is that PSE only applies values to the default overlay of current power plan, if changed to the other 2 overlays, the system will use provisioning values if exist or keep with the default overlay when without provisioning values.
@Donduck PSE does not work with registry. PSE does work with Win API functions. Right now PSE does not change values for settings in overlays - only in power plans. I plan to add overlays...
@mbk1969 Is there any difference between set active balanced_GUID then setting the slider, and set active the three slider_GUID directly? It just seems to reset brightness to maximum and dc values to default because I am on ac.
Power overlay should contains only a small subset of settings - to override the ones in balanced power plan. I will research overlay behavior. I changed PSE to add overlays to power schemes (plans) but behavior is not what I expected: I thought overlays will not show settings not presented in them but instead they show all settings (and allow to edit them). Further research is needed. Upd: Found something related to overlays - https://stackoverflow.com/questions...power-mode-programmatically/68318696#68318696 Spoiler [DllImportAttribute("powrprof.dll", EntryPoint = "PowerSetActiveOverlayScheme")] public static extern uint PowerSetActiveOverlayScheme(Guid OverlaySchemeGuid); [DllImportAttribute("powrprof.dll", EntryPoint = "PowerGetActualOverlayScheme")] public static extern uint PowerGetActualOverlayScheme(out Guid ActualOverlayGuid); [DllImportAttribute("powrprof.dll", EntryPoint = "PowerGetEffectiveOverlayScheme")] public static extern uint PowerGetEffectiveOverlayScheme(out Guid EffectiveOverlayGuid); PowerGetOverlaySchemes https://docs.microsoft.com/en-us/windows/win32/api/powrprof/nf-powrprof-powerreadacdefaultindex
Do you mean the settings reported by powercfg /Q overlay_GUID? On my laptops it gives only the overriding settings, and overlays will use values in power plan if settings are not defined. Maybe PSE is just treating them as individual power plans.
Yes. I was expecting API functions for getting information about power settings to fail with GUIDs of overlays for settings not overridden in overlays, but they return information for all power settings. Next step - I will try to enumerate settings in overlays, maybe it will give correct effect. PS Microsoft devs are jerks - why the hell they did not documented API for power overlays!
I think that's already good enough. Just use overlays as traditional power plans, there's no need to know what settings in overlays are overriding the power plan as long as you can custom overlays individually, which PSE couldn't previously.
@Donduck I managed to enumerate power overlays (and possibly power profiles). Next step - enumeration of settings relevant to overlays.
Do you figure out how would Windows select which power profile to use? btw, why is "Better Battery/best power efficiency" in the slider/Settings replaced by "recommended" on both of my laptops running Windows 10&11 respectively? update: never mind, document says sometimes Better Battery/best power efficiency is labeled as recommended. update: settings for 961cc777-2547-4f9d-8174-7d86181b8a7a doesn't work on recommended (GUID all zeros). Seems that recommended (GUID all zeros) is just a blank overlay that uses all settings from balanced plan.
@mbk1969 Which strategy do you think would be more power efficient in daily light load like web browsing? a) use aggressive c-state thresholds and select really low frequency as often as possible b) use aggressive c-state thresholds and lock frequency at a slightly higher range
I use small - 1ms - activity window (autonomous mode), small - 1ms - idle check time and 95% for idle demote and promote thresholds - hoping for quick bursts of high performance when needed (on demand). PS Do test. Use HWiNFO (for example) to see that CPU wakes from deepest C-state and climbs up to highest P-state when browser opens new page or scrolls the content.
I am using 1μs of idle time check and activity window, modern processors could easily handle this frequent polling rate. And 0% for idle demote and promote thresholds so that only the deepest c-state is selected for extreme power saving.
Did some test, don't see any significant difference, so I decide to set min processor state to 100% for fewer lags.
I don't know why: Processor energy performance preference policy should be the same as speedshift EPP in throttlestop, but only throttlestop applies the value. There are many processors support autonomous mode but Microsoft choose to give the setting to only processors with CPPC v2.