Skip to content

fix(Performance Menu): hide TDP, thermal and power profile controls the GPU does not have - #561

Merged
ShadowApex merged 1 commit into
ShadowBlip:mainfrom
loki666:fix/perf-menu-soc-gpu
Oct 6, 2026
Merged

ShadowApex merged 1 commit into
ShadowBlip:mainfrom
loki666:fix/perf-menu-soc-gpu

Conversation

@loki666

@loki666 loki666 commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

Problem

On a GPU the APU database does not know, such as any SoC GPU (e.g. Adreno on a Snapdragon handheld), the performance menu still shows the TDP and boost sliders, the thermal throttle slider and the power profile dropdown. Their ranges are -1, and their writes go to properties PowerStation does not export for that card.

Such a GPU also has no power profiles, but the menu assumed it always had some:

  • _on_apply_timer_timeout() indexes the empty profile list. The function aborts there, so no setting is ever applied or saved.
  • _create_performance_profile() returns null when the list is empty, and the mode toggle then dereferences that null in _on_profile_loaded().

Changes

  • Each control is shown only when HardwareManager.gpu reports the capability: tdp_capable, tj_temp_capable, power_profile_capable.
  • An empty power-profile list now means "no power profile" rather than an error. gpu_power_profile is left empty, and the apply timer only reads the dropdown when its index is valid.
  • _on_profile_loaded() ignores a null profile.

AMD and Intel APUs found in the database are unchanged: they have all three capabilities and a non-empty profile list.

Testing

Tested on a MANGMI Pocket Max (SM8250, Adreno 650) with PowerStation built with a devfreq GPU backend. The menu shows only the CPU and GPU clock controls. GPU clock and core-count changes are applied and saved, and they survive suspend and resume.

Comment thread core/ui/common/quick_bar/performance_menu.gd Outdated
Comment thread core/ui/common/quick_bar/performance_menu.gd Outdated
Comment thread core/ui/common/quick_bar/performance_menu.gd Outdated
Comment thread core/ui/common/quick_bar/performance_menu.gd Outdated
…he GPU does not have

On a GPU the APU database does not know (any SoC GPU, e.g. Adreno on a
Snapdragon handheld) the TDP sliders, the thermal throttle slider and the
power profile dropdown were shown anyway, with ranges of -1 and writes to
properties PowerStation does not export for that card.

Show each only when HardwareManager says the GPU has it (tdp_capable,
tj_temp_capable, power_profile_capable). AMD and Intel APUs found in the
database are unchanged.

Such a GPU also has no power profiles, which the menu assumed it always
had: the apply timer indexed the empty profile list (aborting, so no
setting was ever applied or saved), and the default profile for the
mode toggle came back null and was dereferenced. Treat an empty list as
"no power profile" instead.
@loki666
loki666 force-pushed the fix/perf-menu-soc-gpu branch from 9562c3a to bd09716 Compare October 4, 2026 09:26

@ShadowApex ShadowApex left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. Thank you for this!

@ShadowApex
ShadowApex merged commit 0c7de5f into ShadowBlip:main Oct 6, 2026
5 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants