* 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
* 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>
* 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
* 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>