Commit Graph

84 Commits

Author SHA1 Message Date
Ilya Zlobintsev
0894f9ae9d dev: add benchmark for drawing plots 2025-02-08 20:54:46 +02:00
Ilya Zlobintsev
cb34adf4cb chore: bump pciid-parser and adopt breaking changes 2025-02-02 01:03:48 +02:00
Ilya Zlobintsev
1292f3f318 chore: bump version, update tests 2025-02-01 20:37:14 +02:00
Ilya Zlobintsev
4cff104c10 chore: bump dependencies 2025-01-24 23:00:11 +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
Umio Yasuno
3afbcb2221 feat: dynamic loading of libdrm and libdrm_amdgpu (#438)
* feat: dynamic loading of libdrm and libdrm_amdgpu

* fix: libdrm_amdgpu_sys requires rustc 1.80.0 for exclusive_range_pattern

* feat: update libdrm_amdgpu_sys to 0.8.1

* fix: remove Rc wrapper for LibDrmAmdgpu

* pkg: bump rust version used to build packages

---------

Co-authored-by: Ilya Zlobintsev <ilya.zl@protonmail.com>
2025-01-04 15:04:07 +02:00
Ilya Zlobintsev
1d44df1652 doc: document all configuration options (#436)
* doc: add configuration docs

* add missing fields to doc

* chore: minor doc update
2024-12-31 19:30:35 +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
0625b55748 test: add tests for retrieving data from various debug snapshots (#429)
* test: add tests for retrieving data from various debug snapshots

* chore: add power profiles mode to snapshot, add rx 7700s test data

* fix: update rust workflow
2024-12-18 23:55:31 +02:00
Ilya Zlobintsev
419814ea38 chore: bump version 2024-11-16 13:37:36 +02:00
Ilya Zlobintsev
b9b8499fe7 chore: bump version 2024-11-08 20:04:11 +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
8e9c13cbf6 chore: drop support for building without libdrm
libdrm was initially added as a way to get more information, but is now
used for some crucial functionality like GPU generation and VRAM type
detection. it should always be used to avoid these things not working
2024-09-10 23:16:27 +03:00
Ilya Zlobintsev
99f6e9ee35 chore: bump version 2024-09-06 09:14:30 +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
aa670be9d6 fix: gracefully handle transient fan control errors 2024-05-11 12:59:27 +03:00
Ilya Zlobintsev
16c50970f6 feat: automatically reload configuration when the config file is changed 2024-03-17 13:47:45 +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
Ilya Zlobintsev
97b1b70946 chore: bump dependencies 2024-03-03 23:17:49 +02:00
Ilya Zlobintsev
f55db8116a bump version to 0.5.4 2024-03-02 13:36:07 +02:00
Ilya Zlobintsev
f1233c5b16 chore: bump version 2024-02-25 13:35:37 +02:00
Ilya Zlobintsev
e672ed4621 fix: segfault caused by incorrect usage of fork in the embedded daemon (#259)
Fixes https://github.com/ilya-zlobintsev/LACT/issues/204
2024-02-06 08:37:20 +02:00
Ilya Zlobintsev
1bbea44dc2 feat: compress debug snapshots into .tar.gz, include system info in them
GitHub does not allow plain .tar uploads but allows .tar.gz
2024-02-04 23:54:18 +02:00
Ilya Zlobintsev
519b4b1b15 chore: update dependencies, adopt breaking changes 2024-02-04 23:32:08 +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
422343315d chore: update dependencies, switch to stable release of amdgpu-sysfs 2024-01-21 10:43:08 +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
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
030e827378 chore: print error info about failed daemon connection 2023-11-25 15:35:55 +02:00
Ilya Zlobintsev
c4856dfadd chore: bump version to 0.5 2023-11-21 22:36:06 +02:00
Ilya Zlobintsev
d93f134f35 feat: show if resizeable bar is enabled 2023-10-21 17:38:32 +03:00
Ilya Zlobintsev
b5424557db chore: bump dependencies 2023-10-14 13:57:39 +03:00
Ilya Zlobintsev
31fd5454c3 chore: clean up dependency features 2023-09-25 23:04:00 +03:00
Ilya Zlobintsev
d1a0690191 feat: bump amdgpu-sysfs with RDNA3 changes, change values to signed integers 2023-09-15 23:10:45 +03:00
Ilya Zlobintsev
8f6e1b2c77 bump version 2023-09-12 22:05:24 +03:00
Ilya Zlobintsev
6429659d56 chore: update dependencies, adopt breaking changes 2023-09-10 12:19:32 +03:00
Ilya Zlobintsev
c04e78fef9 chore: bump dependencies 2023-06-03 08:34:06 +03:00
Ilya Zlobintsev
92eb100239 feat: bump version and report gui version 2023-05-14 13:09:15 +03:00
Ilya Zlobintsev
8c489a3fb9 chore: bump dependencies 2023-05-10 20:10:40 +03:00
Ilya Zlobintsev
c6a7907c35 chore: bump dependencies and switch to a tagged libdrm_amdgpu_sysfs version 2023-04-24 22:06:40 +03:00
Ilya Zlobintsev
b461106edd chore: switch to stable vulkano release 2023-04-05 20:32:18 +03:00
Ilya Zlobintsev
b66d4eb3f7 chore: bump dependencies 2023-03-26 18:29:35 +03:00