-
-
Notifications
You must be signed in to change notification settings - Fork 42
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Looking for user feedback] Add support for per-application config profiles #251
Comments
I'm not sure if I'd use this myself, but it would definitely be a nice bonus feature once full baseline support is there. For a solid implementation, I'm thinking of a priority-based system (short-circuiting check down a list of conditions with associated profiles). The conditions could be simple checks for the presence of certain processes, maybe with the additional option of setting a custom command and matching on its exit code. Seems easy enough to implement with |
The problem with scanning the process list every few seconds is that it requires scanning the entire |
Reference for self on how other projects do it:
|
Gamemode support is only thing needed |
Sounds like the equivalent of what the Nvidia control panel does (or did), that would be GOLDEN! |
I am developing a simple amdgpu profile switcher. |
I would love to see this. I don't care about automatic switching, as I like to switch the profiles by hand even using the same application. I have a default undervolted and underclocked mode which allows me to use the GPU without its fans and a overclocked mode which is quite noisy, basically silent just using case fans. Currently I'm using corectl which (in my eyes) does the whole profile thing in a weird and over complicated way (you can have multiple profiles active at once, partly overwriting others). Biggest "issue" right now is that you cannot ask the command line tool which profile is active, so you have to rely on the GUI to switch profiles. Having a command/API to simply active a profile and another to request the current profile would be perfect, so I can build interfaces for a Plasma Widget and my Stream Deck. |
I just want to preface this with that I have no training in the field whatsoever, but....... for my use.... Steam already exports $SteamAppId which can be used to switch profiles. It would be much cleaner/easier if the API had profile switching by that variable.
You can see how this will get really messy with a big library and setting custom clocks etc ( I dont do that ) With a "load_profile" in the API if someone wants to poll and load they can script it, and the other option would be to start and load which gamemode provides a mechanism for already. For my use case I dont use the lact gui now but it would be a nice feature to be able to manage profiles with it. Thanks :) |
@bioxz @kiwi8sully Support for manual profiles management through the GUI and API landed in #327, there's no automatic switching but it should cover the use cases you've described. |
@ilya-zlobintsev Thankyou so much for this, basically down to one line now with version 0.5.7-0 :) https://github.com/kiwi8sully/lactdprofile.sh |
I was here looking for some docs, there is no man page and I had wanted something like this. I was looking for syntax on just how to set the clocks from cli. Given I launch most my games or 3D tools via wrapper scripts I just wanted to be able to add something like lact cli -clocks=max before the program runs and lact cli -clocks=automatic when it exists. |
If you look at the two scripts in https://github.com/kiwi8sully/lactdprofile.sh you should be able to determine how to set a profile and how to return the card to "null" profile from the command line. Just use the gui to set up a [high_clocks] profile. |
@kiwi8sully automatic switching has been implemented in #424, you can try it by using the test build. Please let me know how it works for you. I've tested it on my setup, but there are different ways in which people might try to use this functionality, so there might be room for improvements for cases I have not considered. |
@ilya-zlobintsev thank it seems to be working although profiles are not updated in the config.yaml until [switch automatically] is disabled and re-enabled. |
If you mean the
Fixed in 4fe3c98 |
Sorry I mean if I edit a profile rule. Clicking [Save] does not save to config.yaml until the [switch automatically] check box is unchecked and then rechecked. |
Ah, that makes sense. Fixed in 5882cf7 |
It would be nice if it was possible to create multiple config profiles, and automatically switch them based on currently running applications. An example use case would be to have one set of settings when you're running a specific game, another when you're running a compute workload etc.
If you're a user and you would find this feature useful, please say so.
Implementation details: ideally this would be done via a eBPF plugin that subscribes to process start/exit events.
bpftrace examples:
If this ends up being too difficult, another way would be to poll
/proc
, but need to make sure that it's not too expensive to do soThe text was updated successfully, but these errors were encountered: