pages: cleanup
This commit is contained in:
@@ -77,15 +77,46 @@ uint32_t GetModuleMaximumFreq(SysClkModule module);
|
||||
typedef enum {
|
||||
SysClkOcGovernorConfig_AllDisabled = 0,
|
||||
SysClkOcGovernorConfig_CPU_Shift = 0,
|
||||
SysClkOcGovernorConfig_CPUOnly = 1,
|
||||
SysClkOcGovernorConfig_CPUOnly = 1 << SysClkOcGovernorConfig_CPU_Shift,
|
||||
SysClkOcGovernorConfig_CPU = 1 << SysClkOcGovernorConfig_CPU_Shift,
|
||||
SysClkOcGovernorConfig_GPU_Shift = 1 << SysClkOcGovernorConfig_CPU_Shift,
|
||||
SysClkOcGovernorConfig_GPU_Shift = 1,
|
||||
SysClkOcGovernorConfig_GPUOnly = 1 << SysClkOcGovernorConfig_GPU_Shift,
|
||||
SysClkOcGovernorConfig_GPU = 1 << SysClkOcGovernorConfig_GPU_Shift,
|
||||
SysClkOcGovernorConfig_AllEnabled = 3,
|
||||
SysClkOcGovernorConfig_Default = 3,
|
||||
SysClkOcGovernorConfig_Mask = 3,
|
||||
} SysClkOcGovernorConfig;
|
||||
|
||||
inline bool GetGovernorEnabled(SysClkOcGovernorConfig config, SysClkModule module) {
|
||||
switch (module) {
|
||||
case SysClkModule_CPU:
|
||||
return (config >> SysClkOcGovernorConfig_CPU_Shift) & 1;
|
||||
case SysClkModule_GPU:
|
||||
return (config >> SysClkOcGovernorConfig_GPU_Shift) & 1;
|
||||
case SysClkModule_MEM:
|
||||
return false;
|
||||
default:
|
||||
return config != SysClkOcGovernorConfig_AllDisabled;
|
||||
}
|
||||
}
|
||||
|
||||
inline SysClkOcGovernorConfig ToggleGovernor(SysClkOcGovernorConfig prev, SysClkModule module, bool state) {
|
||||
uint8_t shift;
|
||||
switch (module) {
|
||||
case SysClkModule_CPU:
|
||||
shift = SysClkOcGovernorConfig_CPU_Shift;
|
||||
break;
|
||||
case SysClkModule_GPU:
|
||||
shift = SysClkOcGovernorConfig_GPU_Shift;
|
||||
break;
|
||||
case SysClkModule_MEM:
|
||||
return prev;
|
||||
default:
|
||||
return state ? SysClkOcGovernorConfig_AllEnabled : SysClkOcGovernorConfig_AllDisabled;
|
||||
}
|
||||
return (SysClkOcGovernorConfig)((prev & ~(1 << shift)) | state << shift);
|
||||
}
|
||||
|
||||
typedef struct
|
||||
{
|
||||
union {
|
||||
|
||||
@@ -74,10 +74,9 @@ void AppProfileGui::listUI()
|
||||
|
||||
if (globalGovernorEnabled) {
|
||||
tsl::elm::ToggleListItem* cpuGovernorToggle = new tsl::elm::ToggleListItem("CPU Freq Governor",
|
||||
(this->profileList->governorConfig >> SysClkOcGovernorConfig_CPU_Shift) & 1);
|
||||
GetGovernorEnabled(this->profileList->governorConfig, SysClkModule_CPU));
|
||||
cpuGovernorToggle->setStateChangedListener([this](bool state) {
|
||||
this->profileList->governorConfig =
|
||||
SysClkOcGovernorConfig((this->profileList->governorConfig & SysClkOcGovernorConfig_GPUOnly) | state << SysClkOcGovernorConfig_CPU_Shift);
|
||||
this->profileList->governorConfig = ToggleGovernor(this->profileList->governorConfig, SysClkModule_CPU, state);
|
||||
|
||||
Result rc = sysclkIpcSetProfiles(this->applicationId, this->profileList);
|
||||
if (R_FAILED(rc))
|
||||
@@ -86,10 +85,9 @@ void AppProfileGui::listUI()
|
||||
this->listElement->addItem(cpuGovernorToggle);
|
||||
|
||||
tsl::elm::ToggleListItem* gpuGovernorToggle = new tsl::elm::ToggleListItem("GPU Freq Governor",
|
||||
(this->profileList->governorConfig >> SysClkOcGovernorConfig_GPU_Shift) & 1);
|
||||
GetGovernorEnabled(this->profileList->governorConfig, SysClkModule_GPU));
|
||||
gpuGovernorToggle->setStateChangedListener([this](bool state) {
|
||||
this->profileList->governorConfig =
|
||||
SysClkOcGovernorConfig((this->profileList->governorConfig & SysClkOcGovernorConfig_CPUOnly) | state << SysClkOcGovernorConfig_GPU_Shift);
|
||||
this->profileList->governorConfig = ToggleGovernor(this->profileList->governorConfig, SysClkModule_GPU, state);
|
||||
|
||||
Result rc = sysclkIpcSetProfiles(this->applicationId, this->profileList);
|
||||
if (R_FAILED(rc))
|
||||
|
||||
@@ -257,19 +257,6 @@ void GpuGovernor::Apply() {
|
||||
|
||||
}
|
||||
|
||||
bool Governor::IsHandledByGovernor(SysClkModule module) {
|
||||
switch (module) {
|
||||
case SysClkModule_CPU:
|
||||
return ((this->GetConfig() >> SysClkOcGovernorConfig_CPU_Shift) & 1);
|
||||
case SysClkModule_GPU:
|
||||
return ((this->GetConfig() >> SysClkOcGovernorConfig_GPU_Shift) & 1);
|
||||
case SysClkModule_MEM:
|
||||
return false;
|
||||
default:
|
||||
return this->GetConfig() != SysClkOcGovernorConfig_AllDisabled;
|
||||
}
|
||||
}
|
||||
|
||||
void Governor::SetConfig(SysClkOcGovernorConfig config) {
|
||||
if (m_config == config)
|
||||
return;
|
||||
@@ -342,16 +329,16 @@ void Governor::GovernorManager::ContextManager(void* args) {
|
||||
}
|
||||
|
||||
uint32_t perf_conf = self->GetPerfConf();
|
||||
if ((gpuThrottled = apmExtIsBoostMode(perf_conf)) && (self->GetConfig() & SysClkOcGovernorConfig_GPU))
|
||||
if ((gpuThrottled = apmExtIsBoostMode(perf_conf)) && self->IsHandledByGovernor(SysClkModule_GPU))
|
||||
self->m_gpu_gov->ApplyBoost();
|
||||
|
||||
if ((cpuBoosted = apmExtIsCPUBoosted(perf_conf)) && (self->GetConfig() & SysClkOcGovernorConfig_CPU))
|
||||
if ((cpuBoosted = apmExtIsCPUBoosted(perf_conf)) && self->IsHandledByGovernor(SysClkModule_CPU))
|
||||
self->m_cpu_gov->ApplyBoost();
|
||||
}
|
||||
|
||||
if (!gpuThrottled && (self->GetConfig() & SysClkOcGovernorConfig_GPU))
|
||||
if (!gpuThrottled && self->IsHandledByGovernor(SysClkModule_GPU))
|
||||
self->m_gpu_gov->Apply();
|
||||
if (!cpuBoosted && (self->GetConfig() & SysClkOcGovernorConfig_CPU))
|
||||
if (!cpuBoosted && self->IsHandledByGovernor(SysClkModule_CPU))
|
||||
self->m_cpu_gov->Apply();
|
||||
|
||||
svcSleepThread(TICK_TIME_NS);
|
||||
|
||||
@@ -329,7 +329,7 @@ public:
|
||||
};
|
||||
|
||||
SysClkOcGovernorConfig GetConfig() { return m_config; };
|
||||
bool IsHandledByGovernor(SysClkModule module = SysClkModule_EnumMax);
|
||||
inline bool IsHandledByGovernor(SysClkModule module) { return GetGovernorEnabled(this->GetConfig(), module); };
|
||||
void SetConfig(SysClkOcGovernorConfig config);
|
||||
|
||||
void SetPerfConf(uint32_t id);
|
||||
|
||||
Reference in New Issue
Block a user