Commit Graph

24 Commits

Author SHA1 Message Date
Ilya Zlobintsev
64a2d3106b feat: automatic profile switching based on rules (#424)
* feat: profile ordering

* feat: profile matching logic

* feat: automatic switching

* perf: optimize profile rules evaluation

* feat: detect gamemode process start

* feat: add benchmark for profiles matching

* perf: string interner, inline hot function

* feat: option to enable auto profile switching

* wip

* chore: change label

* chore: minor profile switching fixes

* chore: drop interner

* wip

* refactor: header messages

* feat: delay profile evaluation

* fix: moving profiles around

* feat: initial profile rule editor UI

* refactor: only create one RuleWindow instead of creating it per-row

* feat: add option to include profile watcher state in api response

* feat: ui for selecting process name

* feat: API endpoint to evaluate a single profile rule

* perf: store process names in a map to speed up profile evaluation

* feat: full configurability in the UI, many improvements

* fix: downgrade dependency to build on older rust

* fix: deleting currently active profile

* fix: populate profiles list when it's empty

* fix: pin project to rust 1.78

* fix: setting args

* fix: running benchmarks
2024-12-25 23:52:35 +02:00
Ilya Zlobintsev
3e53e0336e feat: add RDNA3 zero RPM setting (#393)
* feat: add zero rpm setting

* feat: update zero rpm interface

* chore: use upstream amdgpu-sysfs

* feat: include zero rpm files in debug snapshots

* doc: update readme

* doc: improve
2024-11-14 00:11:24 +02:00
Alik Aslanyan
dbb24c5bd2 feat: improve plot rendering, use supersampling and do it in a background thread
* Threaded plot render

* Better supersampler implementation

* Better to display nothing than do long freeze

* Fix plot throttling jumping around

* Further improve rendering by using filled legend

* Spawn render thread with minimum priority

* Optimize Cairo bindings

* Simplify code as we no longer need to track initial state

Signed-off-by: Alik Aslanyan <inline0@pm.me>

* Add plotters package override for opt-level 3 in release

* Immediately react to size changes of the widget, don't wait for new data

* Scale plots in GTK, instead of Cairo for Trillinear filtering, rewrite supersampling

---------

Signed-off-by: Alik Aslanyan <inline0@pm.me>
2024-10-25 21:48:15 +03:00
Alik Aslanyan
d43ec9cb82 chore: set codegen-units=1 to decrease binary size in release (#390) 2024-10-22 19:04:53 +03:00
Ilya Zlobintsev
538cea3aa5 feat: add support for multiple settings profiles (#327)
* feat: initial support for multiple settings profiles

* feat: initial profiles management support

* feat: basic profile management ui
2024-09-28 09:51:35 +03:00
Ilya Zlobintsev
c08bdfef0b feat: remote management over TCP (#379)
* feat: abstract daemon client

* feat: daemon TCP listener implementation

* feat: support remote connections in the UI

* feat: make the client async

* feat: add documentation about remote management
2024-09-22 14:17:33 +03:00
Ilya Zlobintsev
92fad92e37 feat: bump amdgpu-sysfs with fix for https://github.com/ilya-zlobintsev/LACT/issues/367 2024-09-06 09:07:45 +03:00
Ilya Zlobintsev
44704a101e feat: support for power profile heuristics configuration (#361)
* feat: basic support for power profile heuristics configuration

* attempt to support RDNA heuristics

* chore: finalization
2024-08-20 22:35:16 +03:00
Ilya Zlobintsev
32e25dc269 feat: show detailed power profile information (#360) 2024-08-18 21:42:44 +03:00
Ilya Zlobintsev
4db593c73f fix: defer committing clocks/fan settings changes until all the values have been written (#340)
* feat: defer committing settings until all the values have been written

* fix: reset fan curve after setting pmfw values

* chore: switch to amdgpu-sysfs tag
2024-06-16 00:06:51 +03:00
Ilya Zlobintsev
0d675c5b3a chore: drop unused dependency 2024-06-08 11:12:19 +03:00
Ilya Zlobintsev
cc06f61e52 chore: bump dependencies 2024-06-06 23:14:53 +03:00
Ilya Zlobintsev
50fea14480 feat: implement historical charts window (#301)
* feat: Implement graph widget in OC tab

* fix: Moved legend to lower left corner

* fix: Fix graph jumping around before getting data for 60 secs

* fix: Fix vertical part of graph jumping around

* chore: Refactoring GraphData to be it's separate struct

* chore: Rename Graph to Plot

* feat: Implement throttling histogram in Plot

* fix: Fix throttling data not being filtered out

* fix: Draw lines in front of throttling histogram and use deep orange non-transparent color

* feat: Cubic spline interpolation for plot

* chrone: Lightly refactor cubic sampling

* feat: Supersample the plot area and reconfigure sizes accordingly

* feat: WIP graphs window

* feat: improvements

* feat: add clockspeed plot

* feat: avoid using JSON to send graph info

* perf: trim clockspeed graph data

* chore: remove unused feature

* perf: use NaiveDateTime for the plot

* feat: add power usage plot

* fix: reset power plot

* dev: add benchmark for drawing plots

* perf: use raw timestamps instead of NaiveDateTime in plot

* fix: avoid running gtk tests in ci

* chore: switch away from git source for plotters-cairo

---------

Co-authored-by: Alik Aslanyan <inline0@pm.me>
2024-04-22 19:21:00 +03:00
Ilya Zlobintsev
97b1b70946 chore: bump dependencies 2024-03-03 23:17:49 +02:00
Ilya Zlobintsev
9fc0eae90a chore: set opt-level and lto for smaller binary size 2024-03-02 11:58:20 +02:00
Ilya Zlobintsev
f90a817085 chore: restructure Cargo.toml files to use workspace-level dependencies 2024-02-04 23:14:50 +02:00
Ilya Zlobintsev
1aef539546 chore: strip binary in release mode 2023-09-26 09:01:21 +03:00
Ilya Zlobintsev
685a2479c5 explicitly list crates in workspace Cargo.toml (for dependabot) 2023-02-25 16:02:28 +02:00
Ilya Zlobintsev
de9786b59e feat: unified binary 2023-01-05 12:45:57 +02:00
Ilya Zlobintsev
67957a4673 refactor: move lact-client to a separate crate 2023-01-01 20:28:19 +02:00
Ilya Zlobintsev
d76c0fe48b feat: update dependencies 2022-11-19 15:19:08 +02:00
Ilya Zlobintsev
1a5e456c5b wip everything 2022-11-16 22:46:18 +02:00
Ilya Zlobintsev
7709a92d73 Basic GUI 2020-10-18 11:39:12 +03:00
Ilya Zlobintsev
c482961c49 Init 2020-10-17 07:38:28 +03:00