Commit Graph

116 Commits

Author SHA1 Message Date
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
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
3f278e7dbf fix: reload profile watcher in case of unresponsiveness after inactivity
should finally fully resolve https://github.com/ilya-zlobintsev/LACT/issues/448
2025-01-25 12:46:10 +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
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
885e32d2dd chore: avoid serializing null fields in device stats and info 2024-11-16 13:54:19 +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
Ilya Zlobintsev
1c06887a04 feat: add snapshot command to CLI 2024-11-09 10:53:48 +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
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
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
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
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
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
aa670be9d6 fix: gracefully handle transient fan control errors 2024-05-11 12:59:27 +03:00
Ilya Zlobintsev
6dc35200d7
feat: add support for dumping VBIOS to a file (#305)
* feat: vbios dump daemon implementation

* feat: vbios dump ui
2024-04-22 20:23:35 +03:00
Ilya Zlobintsev
0ad46e2d08
feat: fan control hysteresis (#292)
* feat: implement a fan spindown delay setting

* chore: change request/response logging to the trace level

* feat: add fan speed change threshold setting

* feat: implement GUI for hysteresis settings

* fix: always set hysteresis settings
2024-03-20 23:45:24 +02:00
Ilya Zlobintsev
e74155515d
feat: use drm for getting the gpu device name when possible (#288) 2024-03-16 10:42:49 +02:00
Alik Aslanyan
5a78c72711
feat: improved error reporting, RX 7900 Fixes (#279)
* refactor: Add bunch of .context calls to get more detailed error messages

* refactor: Use serde-error to serialize error with proper backtrace in client/server boundary

* fix: Workaround weird driver bug with RX 7900 XTX and power limit
2024-03-03 21:47:25 +02:00
Ilya Zlobintsev
f55db8116a bump version to 0.5.4 2024-03-02 13:36:07 +02:00
Ilya Zlobintsev
d99cfdf3f3
feat: include git commit in version info (#249)
* feat: report git commit in version info, check commit for mismatches

* feat: use vergen to get commit info

* fix: install git in recipes

* fix: include git dir in pkger builds
2024-03-02 13:07:23 +02:00
Ilya Zlobintsev
f1233c5b16 chore: bump version 2024-02-25 13:35:37 +02:00
Ilya Zlobintsev
1e7d0873ff feat: handle scenarios when only the fan PWM is present, without speed readings 2024-02-25 10:15:08 +02:00
Ilya Zlobintsev
487b35ec18
feat: display info about throttling (#274)
* feat: add throttling info

* fix: empty throttling text
2024-02-24 18:51:12 +02:00
Ilya Zlobintsev
f90a817085 chore: restructure Cargo.toml files to use workspace-level dependencies 2024-02-04 23:14:50 +02:00
Umio Yasuno
28c9f75969
feat: display current_gfxclk if available (#250)
* feat: display current_gfxclk if available

* fix: check current_gfxclk is not equal u16::MAX

* fix: update label
2024-01-26 09:48:02 +02:00
Ilya Zlobintsev
292c94a9c4 feat: add support for disabling overdrive 2024-01-22 19:56:05 +02:00
Ilya Zlobintsev
422343315d chore: update dependencies, switch to stable release of amdgpu-sysfs 2024-01-21 10:43:08 +02:00
Ilya Zlobintsev
8a85b2b8d6
feat: add support for custom fan curves and static fan speed on RDNA3 (#248)
* feat: add support for custom fan curves and static fan speed on RDNA3

* fix: use gpu-provided min and max fan speed values

* fix: set min temperature point too in static curve

* fix: reset fan curve when switching mode back

* fix: normalize fan speed values by taking min speed into account

* test

* Revert "test"

This reverts commit dbd37bdc0b.

* fix: dont use the upper range value as visibility trigger for oc scales

* fix visibility

* Revert "fix: normalize fan speed values by taking min speed into account"

This reverts commit 945cfd23e6.

* fix: get_adjustment_value

* doc: update README
2024-01-20 19:06:49 +02:00
Ilya Zlobintsev
20028cc101 feat: disable thermals controls on rdna3+ when overdrive is disabled, as it is not writeable 2024-01-14 12:24:52 +02:00
Ilya Zlobintsev
57d419c92f feat: use gpu-provided allowed range for voltage offset when it is available 2024-01-13 12:10:22 +02:00
Ilya Zlobintsev
4797ea54f7 feat: add support for regenerating initramfs on fedora 2024-01-13 11:33:14 +02:00
Ilya Zlobintsev
059b66b96d fix: bump amdgpu-sysfs-rs with fix for https://github.com/ilya-zlobintsev/LACT/issues/242 2024-01-12 19:41:13 +02:00
Ilya Zlobintsev
2faea931d2
feat: initial support for RDNA3 fan configuration (PMFW) (#239)
* wip

* feat: basic PMFW options gui

* bump amdgpu-sysfs

* test

* test 2

* test 3

* revert test

* fix: set pmfw settings last

* fix: always set pmfw values

* feat: reset pmfw button

* fix: reset button placement

* chore: cleanup

* chore: bump version

* feat: clean up pmfw settings on exit

* fix
2024-01-07 17:03:56 +02:00
Ilya Zlobintsev
5610e72ab6 feat: automatically regenerate initramfs on arch and debian-based systems
https://github.com/ilya-zlobintsev/LACT/issues/236
https://github.com/ilya-zlobintsev/LACT/issues/190
2024-01-07 11:07:38 +02:00
Ilya Zlobintsev
10f1e8c25a
chore: update dependencies (#232)
* chore: update deps

* chore: bump
2023-12-23 10:26:54 +02:00
Ilya Zlobintsev
9053f1efb5
feat: add option to generate a debug snapshot of the SysFS (#231)
* feat: daemon implementation for generating sysfs snapshot

* feat: snapshot gui

* fix: dialog title

* chore: update bug reporting info
2023-12-23 10:10:50 +02:00
Ilya Zlobintsev
6790c7fa60 fix: normalize VDDC curve before applying it
See https://github.com/ilya-zlobintsev/LACT/issues/212#issuecomment-1867115975
2023-12-22 10:24:26 +02:00
Ilya Zlobintsev
4f163fb323 chore: better error reporting 2023-12-21 19:05:04 +02:00
Ilya Zlobintsev
509640f133 fix: bump amdgpu-sysfs with 5000 series table vddc curve clearing fix
https://github.com/ilya-zlobintsev/LACT/issues/212
2023-12-20 22:59:21 +02:00