[Sys-clk-OC] Added an governor toggle per title in overlay (default: governor enabled) (#37); Fixed an issue where governor does not bump CPU frequency immediately to max when some non-system core (Core0/1/2) util is 100%.
This commit is contained in:
@@ -67,6 +67,25 @@ void AppProfileGui::addProfileUI(SysClkProfile profile)
|
||||
|
||||
void AppProfileGui::listUI()
|
||||
{
|
||||
if (this->applicationId != SYSCLK_GLOBAL_PROFILE_TID) {
|
||||
SysClkConfigValueList* configList = new SysClkConfigValueList;
|
||||
sysclkIpcGetConfigValues(configList);
|
||||
bool globalGovernorEnabled = configList->values[SysClkConfigValue_GovernorExperimental];
|
||||
|
||||
if (globalGovernorEnabled) {
|
||||
tsl::elm::ToggleListItem* governorToggle = new tsl::elm::ToggleListItem("Disable governor", this->profileList->governorDisabled);
|
||||
governorToggle->setStateChangedListener([this](bool state) {
|
||||
this->profileList->governorDisabled = state;
|
||||
Result rc = sysclkIpcSetProfiles(this->applicationId, this->profileList);
|
||||
if (R_FAILED(rc))
|
||||
FatalGui::openWithResultCode("sysclkIpcSetProfiles", rc);
|
||||
});
|
||||
this->listElement->addItem(governorToggle);
|
||||
}
|
||||
|
||||
delete configList;
|
||||
}
|
||||
|
||||
this->addProfileUI(SysClkProfile_Docked);
|
||||
this->addProfileUI(SysClkProfile_Handheld);
|
||||
this->addProfileUI(SysClkProfile_HandheldCharging);
|
||||
|
||||
@@ -26,8 +26,9 @@ MiscGui::~MiscGui()
|
||||
delete this->i2cInfo;
|
||||
}
|
||||
|
||||
tsl::elm::ToggleListItem* MiscGui::addConfigToggle(SysClkConfigValue configVal, std::string labelName) {
|
||||
tsl::elm::ToggleListItem* toggle = new tsl::elm::ToggleListItem(labelName, this->configList->values[configVal]);
|
||||
tsl::elm::ToggleListItem* MiscGui::addConfigToggle(SysClkConfigValue configVal) {
|
||||
const char* configName = sysclkFormatConfigValue(configVal, true);
|
||||
tsl::elm::ToggleListItem* toggle = new tsl::elm::ToggleListItem(configName, this->configList->values[configVal]);
|
||||
toggle->setStateChangedListener([this, configVal](bool state) {
|
||||
this->configList->values[configVal] = uint64_t(state);
|
||||
Result rc = sysclkIpcSetConfigValues(this->configList);
|
||||
@@ -59,11 +60,11 @@ void MiscGui::listUI()
|
||||
sysclkIpcGetConfigValues(this->configList);
|
||||
this->listElement->addItem(new tsl::elm::CategoryHeader("Config"));
|
||||
|
||||
this->unsafeFreqToggle = addConfigToggle(SysClkConfigValue_AllowUnsafeFrequencies, "Allow Unsafe Frequencies");
|
||||
this->cpuBoostToggle = addConfigToggle(SysClkConfigValue_AutoCPUBoost, "Auto CPU Boost");
|
||||
this->syncModeToggle = addConfigToggle(SysClkConfigValue_SyncReverseNXMode, "Sync ReverseNX Mode");
|
||||
this->fastChargingToggle = addConfigToggle(SysClkConfigValue_DisableFastCharging, "Disable Fast Charging");
|
||||
this->governorToggle = addConfigToggle(SysClkConfigValue_GovernorExperimental, "Governor (Experimental)");
|
||||
this->unsafeFreqToggle = addConfigToggle(SysClkConfigValue_AllowUnsafeFrequencies);
|
||||
this->cpuBoostToggle = addConfigToggle(SysClkConfigValue_AutoCPUBoost);
|
||||
this->syncModeToggle = addConfigToggle(SysClkConfigValue_SyncReverseNXMode);
|
||||
this->fastChargingToggle = addConfigToggle(SysClkConfigValue_DisableFastCharging);
|
||||
this->governorToggle = addConfigToggle(SysClkConfigValue_GovernorExperimental);
|
||||
|
||||
this->chargingLimitHeader = new tsl::elm::CategoryHeader("");
|
||||
this->listElement->addItem(this->chargingLimitHeader);
|
||||
|
||||
@@ -236,7 +236,7 @@ class MiscGui : public BaseMenuGui
|
||||
smExit();
|
||||
}
|
||||
|
||||
tsl::elm::ToggleListItem* addConfigToggle(SysClkConfigValue, std::string);
|
||||
tsl::elm::ToggleListItem* addConfigToggle(SysClkConfigValue);
|
||||
void updateConfigToggle(tsl::elm::ToggleListItem*, SysClkConfigValue);
|
||||
|
||||
tsl::elm::ToggleListItem *backlightToggle, *unsafeFreqToggle, *cpuBoostToggle, *syncModeToggle, *fastChargingToggle, *governorToggle;
|
||||
|
||||
Reference in New Issue
Block a user