NGnius / PowerTools

Moved to
https://git.ngni.us/NG-SD-Plugins/PowerTools
GNU General Public License v3.0
414 stars 29 forks source link

Overclocking Profiles #53

Closed Schrumpelrat closed 1 year ago

Schrumpelrat commented 1 year ago

Hi! First of all i Love this Plugin! Great Work so far! I Overclocked my Steam Deck (with https://github.com/DavidS95/Smokeless_UMAF) and would like to ask, if it's possible to make an Expert toggle in PowerTools or maybe Extend the Frequency Slider for CPU and GPU? Currently my TDP is set in Bios to 21W, MAX CPU clock is set to 3900mhz and the GPU can theoretically boost up to 2100mhz. Obviously the Cooling solution cant sustain max speed @21w but it would be nice to disable smt and maybe a couple of cores to boost CPU performance in emulators etc. The same with the GPU clocks.

Thanks!

NGnius commented 1 year ago

Initial progress on something like this is in commit 1dc0acc

NGnius commented 1 year ago

I'm going to hijack this issue to explain & justify how the custom limits system works. Comments and concerns are appreciated.

Disclaimer: I am not liable for nor do I encourage people to overclock their Steam Deck. But it's also your own device, so you can do whatever you want with it provided you are willing to be responsible for the consequences (if any).

Now that I've avoided people blaming me for their own actions, let's go. The most important change is that PowerTools will now look for the file pt_oc.json which can be used to define custom clock speeds for CPU and GPU. When that file is not present, it'll use the default Steam Deck clock speeds. When that file is present, it'll use clock settings from that file. Users must define their own clock speeds because it is not reported correctly by the kernel (or at least I can't find where it's reported), which shouldn't be too hard for anyone who is tech savvy enough to overclock their Deck. The file format is JSON, and fields and whatnot are defined in the code here -- OverclockLimits is the file's base object, with specific sub-objects for each . PowerTools' logs will tell you if the file is ok, and should give a decent error message if the file is invalid (before loading the default clock settings).

Since this change is mostly for overclockers, I'm confident they can sort it out themselves and so I won't be dedicating much time for further work on this feature. Of course, PRs are always welcome.

fabioneves commented 1 year ago

@NGnius I've tried creating the pt_oc.json file in the root of the plugin PowerTools but my limits are still the same eventho I've changed them. I've also tried to put the file in the bin and dist folder and the result was the same. Where should this file be placed? Thanks for this plugin, it's awesome!

UPDATE: Found it after checking the logs, the pt_oc.json file should be put in /home/deck/.config/powertools/pt_oc.json

RealDoomSlaya commented 1 year ago

@NGnius I've been trying to get this to work with my deck without any luck. I love the plugin - but why can't you take the extra 5 to 10 minutes to tell those who aren't Linux/coding savvy how to use it properly?

It would be nice if someone could share their pt_oc file for those without a clue about how to set it up. Thanks.

NGnius commented 1 year ago

The short answer is it's my free time and I'll spend it doing what I want.

The longer answer: It may seem like 5-10 minutes, but in reality it's unquantifiable. I said from the start that custom (overclocking) ranges wasn't going to be a priority and I expect people who are tech savvy enough to be able to OC their Deck to also be able to figure out simple Linux commands on their own. I'm not sure that a bit of text will help them out but I am pretty sure it's not worth my time to help each person who can't follow or find the docs. The documentation I wrote covers the stuff that's not so obvious, and I've already spent more than 10 minutes of my time just telling people to look at it.

From a more ideological standpoint, I also want to encourage people to learn transferable skills like general tech literacy concepts (copying files, elevating permissions, etc.) in this modern computer age. It's dangerous to tell someone to blindly use sudo without explaining what they're getting themselves into.

You may also be happy to learn that v1.2.0 will change the permissions of the PowerTools-managed folder to allow for things to be written into it without needing elevated permissions. That's partly because I'm tired of people asking me how to copy files, but mostly because that folder's permissions haven't been consistent with the folder's location since inception.