Repository navigation
fix(Performance Menu): hide TDP, thermal and power profile controls the GPU does not have - #561
Merged
Merged
Conversation
pastaq
requested changes
Oct 3, 2026
…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
force-pushed
the
fix/perf-menu-soc-gpu
branch
from
October 4, 2026 09:26
9562c3a to
bd09716
Compare
pastaq
approved these changes
Oct 5, 2026
ShadowApex
approved these changes
Oct 6, 2026
ShadowApex
left a comment
Collaborator
There was a problem hiding this comment.
Looks good. Thank you for this!
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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()returnsnullwhen the list is empty, and the mode toggle then dereferences thatnullin_on_profile_loaded().Changes
HardwareManager.gpureports the capability:tdp_capable,tj_temp_capable,power_profile_capable.gpu_power_profileis left empty, and the apply timer only reads the dropdown when its index is valid._on_profile_loaded()ignores anullprofile.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.