Legion Go S Per game profile TDP not automatically applying
Your system information
- Steam client version: 1748914100
- SteamOS version: 3.7.8
- Opted into Steam client beta?: No
- Opted into SteamOS beta?: No
- Have you checked for updates in Settings > System?: Yes
Please describe your issue in as much detail as possible:
Per-game profile does not automatically apply custom TDP,
I have cyberpunk 2077 set to 20w in the per game profile, when it launches it stays at 33w when unplugged and 40w when plugged in.
Same for Cult of the Lambs I have it set to 14w in the per game profile but it stays at 33w when unplugged and 40w when plugged in.
This happens for every game i have on my Legion Go S
Steps for reproducing this issue:
- Start a game, set a custom TDP.
- Close the game and relaunch the game
- TDP stays at maximum despite custom TDP
This looks like a steamos-manager/Steam client interaction bug to me. I have a per-game profile set for Elden Ring at 15W on the slider. Steam logs show:
[2025-06-18 10:17:21] Set tdp limit enabled: 1
[2025-06-18 10:17:21] Commit tdp limit update: 1 - 33
[2025-06-18 10:17:21] Set tdp limit: 15
[2025-06-18 10:17:21] Commit tdp limit update: 1 - 15
[2025-06-18 10:17:21] Set manual gpu clock enabled: 0
[2025-06-18 10:17:21] Set manual gpu clock hz: 2200
[2025-06-18 10:17:21] Set platform performance profile: custom
[2025-06-18 10:17:21] YldSetPlatformPerformanceProfile: skipping set as steamos-manager is already in the desired state: custom -> custom
after entering a game, while sysfs reports:
deck@legion-go-s ~> cat /sys/class/firmware-attributes/lenovo-wmi-other-0/attributes/ppt_pl*/current_value
33
33
33
and dbus-monitor shows:
signal time=1750267181.061769 sender=org.freedesktop.DBus -> destination=:1.120 serial=4294967295 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameAcquired
string ":1.120"
signal time=1750267182.082396 sender=:1.31 -> destination=(null destination) serial=164 path=/org/ayatana/NotificationItem/steam/Menu; interface=com.canonical.dbusmenu; member=LayoutUpdated
uint32 2267
int32 0
method call time=1750267182.757488 sender=:1.31 -> destination=:1.5 serial=165 path=/com/steampowered/SteamOSManager1; interface=org.freedesktop.DBus.Properties; member=Set
string "com.steampowered.SteamOSManager1.TdpLimit1"
string "TdpLimit"
variant uint32 33
method call time=1750267182.757533 sender=:1.31 -> destination=:1.5 serial=166 path=/com/steampowered/SteamOSManager1; interface=org.freedesktop.DBus.Properties; member=Set
string "com.steampowered.SteamOSManager1.TdpLimit1"
string "TdpLimit"
variant uint32 15
method call time=1750267182.757632 sender=:1.31 -> destination=:1.5 serial=167 path=/com/steampowered/SteamOSManager1; interface=org.freedesktop.DBus.Properties; member=Set
string "com.steampowered.SteamOSManager1.GpuPerformanceLevel1"
string "GpuPerformanceLevel"
variant string "auto"
method call time=1750267182.757647 sender=:1.31 -> destination=:1.5 serial=168 path=/com/steampowered/SteamOSManager1; interface=org.freedesktop.DBus.Properties; member=Set
string "com.steampowered.SteamOSManager1.GpuPerformanceLevel1"
string "ManualGpuClock"
variant uint32 2200
error time=1750267182.758444 sender=:1.5 -> destination=:1.31 error_name=org.freedesktop.DBus.Error.Failed reply_serial=168
string "Invalid argument (os error 22)"
signal time=1750267182.758677 sender=:1.5 -> destination=(null destination) serial=541 path=/com/steampowered/SteamOSManager1; interface=org.freedesktop.DBus.Properties; member=PropertiesChanged
string "com.steampowered.SteamOSManager1.GpuPerformanceLevel1"
array [
dict entry(
string "GpuPerformanceLevel"
variant string "auto"
)
]
array [
]
signal time=1750267182.758957 sender=:1.5 -> destination=(null destination) serial=542 path=/com/steampowered/SteamOSManager1; interface=org.freedesktop.DBus.Properties; member=PropertiesChanged
string "com.steampowered.SteamOSManager1.GpuPerformanceLevel1"
array [
dict entry(
string "GpuPerformanceLevel"
variant string "auto"
)
]
array [
]
method return time=1750267182.758993 sender=:1.5 -> destination=:1.31 serial=543 reply_serial=167
signal time=1750267182.912241 sender=:1.5 -> destination=(null destination) serial=545 path=/com/steampowered/SteamOSManager1; interface=org.freedesktop.DBus.Properties; member=PropertiesChanged
string "com.steampowered.SteamOSManager1.TdpLimit1"
array [
dict entry(
string "TdpLimit"
variant uint32 33
)
]
array [
]
method return time=1750267182.912285 sender=:1.5 -> destination=:1.31 serial=546 reply_serial=166
signal time=1750267183.068939 sender=:1.5 -> destination=(null destination) serial=547 path=/com/steampowered/SteamOSManager1; interface=org.freedesktop.DBus.Properties; member=PropertiesChanged
string "com.steampowered.SteamOSManager1.TdpLimit1"
array [
dict entry(
string "TdpLimit"
variant uint32 33
)
]
array [
]
method return time=1750267183.068979 sender=:1.5 -> destination=:1.31 serial=548 reply_serial=165
signal time=1750267183.069989 sender=:1.5 -> destination=(null destination) serial=549 path=/com/steampowered/SteamOSManager1; interface=org.freedesktop.DBus.Properties; member=PropertiesChanged
string "com.steampowered.SteamOSManager1.TdpLimit1"
array [
dict entry(
string "TdpLimit"
variant uint32 33
)
]
array [
]
signal time=1750267183.070760 sender=:1.5 -> destination=(null destination) serial=550 path=/com/steampowered/SteamOSManager1; interface=org.freedesktop.DBus.Properties; member=PropertiesChanged
string "com.steampowered.SteamOSManager1.TdpLimit1"
array [
dict entry(
string "TdpLimit"
variant uint32 33
)
]
array [
]
signal time=1750267183.787034 sender=:1.31 -> destination=(null destination) serial=169 path=/org/ayatana/NotificationItem/steam/Menu; interface=com.canonical.dbusmenu; member=LayoutUpdated
uint32 2297
int32 0
Is there any updates on this issue ?
I can confirm with Steam/SySFS logs that I got the exact same behaviour. What would the best workaround for now, SimpleDeckyTDP or HandHeld Daemon ?
I'm pretty sure it's similar to this issue so no updates unfortunately. Not sure about a workaround either, sorry.
Hi, do you have any updates on this issue? I thought it had been resolved, but it's no longer working. The per-game profile is saved, the TDP set to 20W is displayed, but it's not applied when launching games. I don't know if the problem applies to all games.
Legion GO S Z2 GO 16GB White
Steam on Main et Steam Client on Beta
Thanks
I have a theory on what's happening after looking into this more this morning, waiting to get a Steam developer's input on it
Having the same problem on both my steam deck and my legion go S Z1 extreme and it effects all settings not just TDP the frame rate limiter and GPU clocks also default every time I start a game it’s very annoying every time I start a game I have to change tdp, and frame rate
Hello, this problem has been going on for months, and there's still no resolution planned? Do you plan to fix it someday? Thanks
I can confirm this issue, it's really annoying