* feature: Add ASAN/TSAN to CI
* feature: Add SAFESTACK sanitizer
* feature: Add MEMORY sanitizer
* fix: Try to fix thread unsafety by leaking libraries
* fix: Suppress MSAN errors and clarify their future fix
* fix: Instead of supressing fuser errors, use patched version
* fix: Properly lazily initialize controllers
* fix: Add comment explaining why there is allowlist for bindings
* fix: Upgrade used nightly
* fix: Try to fix sanitizer compilation error
* Revert "fix: Try to fix sanitizer compilation error"
This reverts commit 47514158d5.
* Revert "fix: Upgrade used nightly"
This reverts commit c3dd005c7e.
* chore: Instead of personal fork revision, use official repo
* chore: Refactor to not pass arguments for statics
* chore: Add note for loading of libs
* chore: Try to fix codecov action
* chore: Fix compilation problem
* fix: Revert to using serde_yaml, instead of serde_yml, as it contains UB
* chore: Fix most tests to run under Miri
* feature: Add miri to CI checks
* fix: Replace unmaintained serde_yaml with serde_norway
* feat: initial rdna4 support
* fix: disable writing clocks settings for now
* feat: work around misreported clock offsets, only set max offset
* feat: support new (kernel 6.15+) sclk offset format
* fix: fan curve zero page zero rpm switch
* feat: show zero rpm stop temperature on fan curve page
* feat: disable zero rpm on static control
* chore: update test snapshot
* feat: explicitly fail when setting a pmfw fan curve outside of allowed ranges
* feat: fall back to gpu_metrics for fan info when hwmon is not available
* chore: add gpu_metrics test data
* chore: fmt
* chore: update default fan curve
* chore: update 9070xt-new test data
* fix: make missing zero rpm option a non-fatal error
* chore: switch amdgpu-sysfs crate version
* 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>