Extremely weird dGPU power behaviour on 140W chargers

Hello to y’all - as a proud new FW16 Owner i got to play around with it over the previous days and thoroughly enjoyed this absolute beast of a Laptop so far on Fedora 40. However, i’ve ran into the most curious issues with it when i play games on it while using a temporary (until 240W USB-C chargers come out) 140W UGREEN Nexode Charger.

When i run games on the battery or a 60W anker charger everything works fine, both on the dgpu and igpu, with the expected performance reduction that i can live with - but of course that would also significantly cut into the time i could do so for, so i tried to run it on the 140W charger and it goes from mostly smooth vrr frametimes like that:

(Ignore the “Thermal Throttling” Line, its flatpak steam)

framework_60W
Sorry, only one picture, i can only post two images as a new user but imagine there being basically the same picture here for battery exclusive use saying “53 FPS” instead.

to this absolute mess:
Framework_140W

And its not just when trying to charge the battery, this also happens when full (60% set limit, and it still randomly drains the battery even plugged in but that sadly seems expected behaviour from other threads).

Nothing helps this - not even limiting the game to vsync, or the same framerate as it can get on battery. It keeps jittering around until the 140W charger is removed and i use a 60W charger at max.

This affects countless games - Helldivers 2, Planetside 2, Overwatch 2, Gunfire Reborn and and and.

What i dont get is how the gpu spikes this hard into frametimes worse than a 60W charger being plugged in, all while the Nexode is only delivering 100 instead of 140W (measured at the wall with a smart plug).

My first try would’ve been to enable amdgpu power limits and Limiting the amdgpu to 80W or 60W
echo 80000000 > /sys/class/drm/card1/device/hwmon/hwmon8/power1_cap.

It’d probably still manage to run just fine while keeping the laptop working wonderfully for me until a 240W charger makes it out of prototype phases - but sadly the card is limited (power1_cap_min is exactly 100W) in firmware, and sadly the linux kernel now also respects those minimum limits. While it allows me to give 120W to the card i’m not allowed to go below at all, sadly.

Same charger works fine for cpu+igpu only, which is my current “solution” to this issue.

So what i request of Framework is:

  1. Why does the machine stutter this hard and worse on a 140W charger than 60W, when it runs just fine on 60W pulling the rest it needs from the battery? And what can be done to fix it? (Note: Charge Limit is 60%, have not tested 100%)

and

  1. can you please allow me to limit the dgpu wattage, for highly efficient gaming on the go? Amd gpus can sometimes run at “most” (80-90%) of the framerate at like half the power limit if let be, which makes it a whole lot easier when travelling with just 140W (or having to deal with a friends leftover 60W when playing locally - and just imagine the size of future 240W chargers)
1 Like

Further research:

If i limit SCLK and MCLK to the lowest i get stable 30 fps. Since there’s only 3 levels i can sadly not limit it just fine-grained enough for this, but this is still worse than on battery or 60W.

Setting pp_power_profile_mode manually to VR has the least jitter, but it still has jitter. Other Profiles behave a LOT worse.

Putting the entire machine into “Power Saver” mode via performance profile daemon manages to stabilize it mostly, but at “same as on battery” performance level, not at “with wall power” performance level.