Commit Graph

223 Commits

Author SHA1 Message Date
Ilya Zlobintsev
8dde4df4d1
perf: disable plot supersampling, add plot render benchmarks (#467)
* dev: add benchmark for drawing plots

* chore: update bench

* perf: disable supersampling
2025-02-10 19:25:15 +02:00
Ilya Zlobintsev
ff55dc7634
fix: avoid setting pstates unless explicitly enabled in the gui (#465)
* feat: better pstate config

* fix: reset custom pstate settings

* fix: sensitivity

* fix: remove pstates from config when empty

* fix: react to configurable notify

* fix: show on start

* fix: gpu switching
2025-02-08 18:09:30 +02:00
Ilya Zlobintsev
e24b0e2dad
feat: nvidia per-pstate clock offset configuration (#461)
* feat: nvidia per-pstate clock offset

* feat: update ui

* chore: update tests and doc
2025-02-02 23:00:25 +02:00
Ilya Zlobintsev
2ed9e1fb34 feat: show temperature sensor name on oc page 2025-02-02 13:14:15 +02:00
Ilya Zlobintsev
8c3a99c65c refactor: make GpuStatsSection a relm component 2025-02-01 21:23:13 +02:00
Ilya Zlobintsev
1292f3f318 chore: bump version, update tests 2025-02-01 20:37:14 +02:00
Ilya Zlobintsev
4cec8e1456
refactor: make ClocksFrame a relm component (#459)
* refactor: make ClocksFrame a relm component

* fix: intel clock controls

* fix: avoid setting page size
2025-02-01 16:57:50 +02:00
Ilya Zlobintsev
781e3f1793
refactor: make power cap frame into a relm component (#457)
* refactor: make power cap frame into a relm component

* chore: drop incorrect widget impl claim

* chore: bump artifact workflow

* fix: update artifact name
2025-01-31 18:35:53 +02:00
Ilya Zlobintsev
d6c8329b80
refactor: make OcPage a relm component (#456)
* wip

* fix: avoid showing apply button

* fix: reconnect signals after setting power states
2025-01-29 23:37:12 +02:00
Ilya Zlobintsev
48844efd46 feat: CPU accessible vram and resizeable bar reporting on intel 2025-01-18 14:15:29 +02:00
Ilya Zlobintsev
5077836352 chore: include version in snapshot file name 2025-01-14 23:39:54 +02:00
Ilya Zlobintsev
c682c78ef3
feat!: Intel support (#439)
* WIP: add initial intel xe/i915 support

* feat: basic gpu clock configuration

* wip i915 freq controls

* fix: applying frequency settings on i915

* feat: intel DRM info

* feat: show EUs and subslices in UI

* refactor: exclude all system-dependent info in tests with conditional compilation

* chore: ignore clippy errors on bindgen file

* fix: more test fixes

* feat: generate drm bindings for xe

* wip

* refactor: GPU controller initialization

* fixes

* chore: disable currently unused xe headers

* feat: dynamically load libdrm for intel

* chore: drop println

* Merge with master

* fix: tests

* chore: avoid error in vulkan when running tests

* feat: numerous i915 additions

* feat: show fan speed

* feat: hwmon monitoring on xe

* fix: avoid crashing history graph on empty plot with throttling data

* feat: report pstates

* doc: update readme

* chore: update API docs link
2025-01-12 17:16:02 +02:00
Ilya Zlobintsev
740e38863b feat: use VRAM offset ratio on Ada, add config migration system to erase old
memory clock settings
2025-01-05 11:59:26 +02:00
Ilya Zlobintsev
e93025164e refactor: simplify lact-client by removing ResponseBuffer 2025-01-05 10:14:22 +02:00
Ilya Zlobintsev
e1457cad54
fix: apply pstates correctly when clocks settings are used (#437)
* fix: apply pstates after clocks table and other settings

* fix: take vram clock ratio into account for pstates
2024-12-31 19:03:39 +02:00
Ilya Zlobintsev
a7b29afe60 chore: dont show extra info in InfoRow when the value is unknown 2024-12-26 12:41:28 +02:00
Ilya Zlobintsev
4fe3c9882e fix: reload non-stats-based info in the UI when the profile changes 2024-12-26 12:37:36 +02:00
Ilya Zlobintsev
21df725c42 fix: avoid spamming error windows 2024-12-26 12:23:54 +02:00
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
f0a878909c
feat: configurable graphs period (#431)
* chore: update test snapshot

* feat: configurable graphs period
2024-12-22 15:13:46 +02:00
Ilya Zlobintsev
f832369bab chore: clarify version mismatch message 2024-11-16 22:37:14 +02:00
Ilya Zlobintsev
a26bcec806 feat: show error when NVML is not loaded while the nvidia driver is present 2024-11-16 14:49:21 +02:00
Ilya Zlobintsev
419814ea38 chore: bump version 2024-11-16 13:37:36 +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
8084247d24
chore: remove unused Cargo features (#405) 2024-11-09 16:08:54 +02:00
Ilya Zlobintsev
3d783d6348 refactor: drop redundant ClockSettings structure in the ui 2024-11-09 10:07:57 +02:00
Ilya Zlobintsev
b9b8499fe7 chore: bump version 2024-11-08 20:04:11 +02:00
Ilya Zlobintsev
23ab0e86e8
refactor: make info page a relm component (#404)
* refactor: drop RootStack

* refactor: make InformationPage a relm component
2024-11-07 22:35:23 +02:00
Andi Powers-Holmes
2d00ce0ecb
fix: make throttling flags ellipsized to avoid massively oversized window (#402) 2024-11-07 09:01:24 +02:00
Ilya Zlobintsev
bc594da95b
feat: implement clocks control on Nvidia (#398)
* feat: initial support for clocks control on nvidia

* feat: store last applied offset, use it for reporting when needed

* chore: remove unused file
2024-11-01 23:28:57 +02:00
Ilya Zlobintsev
9fcbbd2f4b chore: drop old bench feature 2024-10-27 23:35:41 +02:00
Ilya Zlobintsev
7cabe614c2
feat!: add initial Nvidia support (#388)
* feat: abstract GpuController

* test?

* fix: dont re-initialize nvidia gpu

* feat: more info on nvidia

* feat: core stats on nvidia

* fix: nvidia uses milliwatts not microwatts

* feat: include device info and stats responses in debug snapshot

* chore: avoid logging msg twice

* fix: correctly handle only secondary line series being present in a plot

* feat: more reporting

* feat: support for setting the power cap

* chore: avoid trying to initialize drm for non-amd gpus

* chore: avoid drawing primary plot label when only secondary values are present

* feat: hide unknown values on the info page

* feat: report cuda cores

* chore: limit power usage value accuracy

* 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

* feat: nvidia fan control

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

* feat: pstate reporting

* doc: update README to mention that nvidia is now supported

* doc: add historical data to readme

* doc: improve screenshot alignemnt

* doc: add nvidia driver note

---------

Signed-off-by: Alik Aslanyan <inline0@pm.me>
Co-authored-by: Alik Aslanyan <inline0@pm.me>
2024-10-25 23:35:26 +03: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
Ilya Zlobintsev
c77fc555ac feat: show dialog when attempting to reconnect to daemon 2024-09-28 10:40:15 +03:00
Ilya Zlobintsev
b1229a3e1e chore: bump version 2024-09-28 10:03:14 +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
4a092b7109
feat: add headless packages for RHEL (via Rocky Linux) (#380)
* feat: add headless packages for RHEL (via Rocky Linux)

* fix: rhel curl package
2024-09-22 16:14:50 +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
e411d155da
feat: use relm4 for the UI (only main parts) (#375)
* feat: use relm4 for vulkan window

* feat: WIP relm4 for app

* feat: applying settings

* wip

* feat: implement all the main actions

* feat: avoid full reloads when they are not needed

* fix: don't save vbios dump when the dialog was cancelled

* feat: OC control

* feat: use relm for the software page
2024-09-20 15:46:33 +03:00
Ilya Zlobintsev
74dda30925 feat: add option to reset all configuration 2024-09-07 22:28:15 +03:00
Ilya Zlobintsev
9dbce2a812
feat: show effective VRAM clockspeed in the GUI on GDDR6 (#368)
* feat: refactor clocks frame adjustments into a separate widget

* feat: show effective VRAM clockspeed in the GUI on GDDR6
2024-09-07 15:01:51 +03:00
Ilya Zlobintsev
99f6e9ee35 chore: bump version 2024-09-06 09:14:30 +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
54ef929b1a
feat: use ScrolledWindow for initramfs output when enabling/disabling oc (#364) 2024-08-30 13:08:41 +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
cd9a3b2f31 chore: update dependencies, adopt new gtk-rs clone macro syntax 2024-08-16 09:34:52 +03:00
Ilya Zlobintsev
f9f4225a88 chore: fix deprecation warnings 2024-08-16 09:21:57 +03:00
Ilya Zlobintsev
fe0f8b5e52 fix: avoid crashing on non-numeric input in fan curve editor 2024-08-16 09:18:15 +03:00
Ilya Zlobintsev
0d675c5b3a chore: drop unused dependency 2024-06-08 11:12:19 +03:00