Commit Graph
177 Commits
Author SHA1 Message Date
Ilya Zlobintsev ae46edc9ae feat: gamemode watcher through busctl cli instead of seteuid trickery (#721)
* feat: gamemode watcher through busctl cli

* chore: use sudo instead of changing user in busctl

* fix: apparmor compatibility
2025-08-23 13:44:24 +03:00
Ilya Zlobintsev f3f1864853 feat: use friendy names in device list, bump libdrm-amdgpu 2025-08-07 21:07:28 +03:00
Ilya Zlobintsev 89a7edea67 feat: expose full V/F curve for GCN and RDNA1 (#676)
* feat: WIP VF curve for GCN/RDNA1

* fix: curve deserialization

* fix: use correct range for mclk

* chore: documentation and rdna1 fix

* chore: avoid resetting "show all pstates"

* fix: flatpak sources

* fix: ui on rdna1

* chore: better separators

* chore: consistent separator spacing
2025-07-27 14:30:24 +03:00
Ilya Zlobintsev 57ac91f9eb feat: initial localization support (#669)
* feat: WIP localization support

* feat: add strings for software and thermals pages

* feat: oc page localization strings

* feat: some header strings
2025-07-24 21:14:52 +03:00
Ilya Zlobintsev 6f4eccf9e3 chore: bump dependencies 2025-07-20 19:34:44 +03:00
Ilya Zlobintsev 64b2008c56 feat: skip ppd actions disable for tuned-ppd (#643) 2025-06-29 09:22:41 +03:00
Ilya Zlobintsev e8d658667a chore: update metainfo for new release 2025-06-28 11:42:44 +03:00
Ilya Zlobintsev b950f585a0 feat: flatpak daemon via flatbox (#635)
* feat: flatpak daemon through flatbox

* feat: host initramfs generation

* feat: working command spawn

* feat: add support for run0 in setup script

* fix: setup

* fix: setup with a different shell
2025-06-28 11:18:11 +03:00
Ilya Zlobintsev 5637792492 fix: avoid deserialization error with old vulkan format response 2025-06-27 19:47:49 +03:00
Ilya Zlobintsev d11a681798 chore: switch to upstream nvml-wrapper 2025-06-10 08:20:14 +03:00
AloganiandIlya Zlobintsev b448613a93 chore: update easy_fuser to v0.4.1 (#603)
* Update easy_fuser to v0.4.1

Fix #598

* chore: update Cargo.lock and flatpak sources

---------

Co-authored-by: Ilya Zlobintsev <ilya.zl@protonmail.com>
2025-05-30 16:44:17 +03:00
Ilya Zlobintsev c17227a8fc chore: drop workaround for broken RDNA4 clock offset format on older kernels (#599)
* chore: drop workaround for broken RDNA4 clock offset format

* chore: add 9070 non-XT test data

* chore: update flatpak sources
2025-05-29 22:04:55 +03:00
Ilya Zlobintsev 0c5c573c52 chore: replace unmaintained serde_yaml library 2025-05-24 20:31:25 +03:00
Ilya Zlobintsev 2c25c4bdf3 feat: use updated libcopes from crates.io, update bindgen 2025-05-24 16:21:05 +03:00
Ilya Zlobintsev a1a468a8f4 fix: bump amdgpu-sysfs with fix for https://github.com/ilya-zlobintsev/LACT/issues/590
also add 7600s test data
2025-05-24 12:13:08 +03:00
Ilya Zlobintsev 243a1ecd45 feat: support exporting and importing profiles (#579)
* feat: support exporting and importing profiles

* feat: renaming profiles
2025-05-18 14:51:03 +03:00
Ilya Zlobintsev 070ea44c47 feat: update libdrm-amdgpu-sys with RDNA3 hotspot throttle workaround 2025-05-16 17:35:58 +03:00
Ilya Zlobintsev d2c7709b5b chore: gray out the ui when switching GPUs 2025-05-14 09:34:23 +03:00
Ilya Zlobintsev f2f8e3aedb chore: switch cl3 to git source with library name fix 2025-05-09 23:24:36 +03:00
Ilya Zlobintsev 2450f332a7 chore: drop itertools dependency 2025-05-06 21:13:39 +03:00
Ilya Zlobintsev fd4576e287 chore: bump dependencies 2025-04-26 09:07:48 +03:00
Ilya Zlobintsev 96bb7b7172 feat: show OpenCL info, move Vulkan to software tab (#553)
* feat: fetch OpenCL info

* feat: show opencl info in gui

* chore: move vulkan info to software page, refactor

* refactor: unify hw info page into one component

* chore: update generated-sources

* feat: show more information

* fix: disable dynamic feature in OpenCL

* Revert "fix: disable dynamic feature in OpenCL"

This reverts commit 18c9d93ed7.

* fix: add dependency

* fix: set correct dependencies

* fix: opencl package name

* fix: fedora package name

* fix: add rhel repo

* chore: update readme
2025-04-23 22:11:56 +03:00
Ilya Zlobintsev 6edda02556 fix: set socket permissions after running config migrations 2025-04-08 23:07:33 +03:00
Ilya Zlobintsev a86139a700 feat: show throttling status on plot legend 2025-04-05 09:47:40 +03:00
Ilya Zlobintsev 658e4930ea feat: add Flatpak package (#519)
* feat: WIP

* feat: add wip manifest

* fix: replace /var/run with /run

* feat: add flatpak build to github actions

* feat: add flatpak setup script

* fix: build in release

* chore: check autostart mark by default

* feat: update app id

* chore: merge flatpak manifest modules

* chore: add cleanup section

* chore: update manifest file

* chore: pin github actions to specific commits

* chore: update app id again

* doc: add flatpak documentation

* chore: metainfo updates

* fix: desktop file entrypoint

* doc: add service permissions note to flatpak

* chore: improve flatpak manifest

* fix: libdrm x-checker-data indentation
2025-04-04 21:38:19 +03:00
Ilya Zlobintsev 5ccf5205df feat: add fan speed RPM reporting on nvidia 2025-03-29 17:54:42 +02:00
Ilya Zlobintsev 6f1ffed66b feat: persistent UI settings (#515)
* feat: persistent UI settings

* chore: switch more images to quay

* fix: add missing file

* feat: add button to reset plots to default
2025-03-29 17:42:34 +02:00
Ilya Zlobintsev 5633da237e fix: bump nvml-wrapper with nvmlDeviceGetSupportedPerformanceStates size param fix 2025-03-25 08:07:39 +02:00
Ilya Zlobintsev 6efbad8344 chore: bump nvml-wrapper 2025-03-22 21:12:24 +02:00
Ilya Zlobintsev fc1d5595ce fix: update nvml-wrapper 2025-03-20 21:47:12 +02:00
Ilya Zlobintsev 0c0198504a feat: automatically migrate existing fan curves to be within fan speed limits, show limits in UI (#503)
* feat: restrict fan curve UI to allowed percentages

* feat: automatically migrate fan curve to within limits in config

* feat: also handle static fan speed
2025-03-20 21:42:07 +02:00
Ilya Zlobintsev 502e877aa0 feat: handle nobara in initramfs update 2025-03-19 18:42:54 +02:00
Ilya Zlobintsev 942526e348 feat: RDNA4 support (#487)
* 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
2025-03-16 18:40:03 +02:00
Ilya Zlobintsev 42ac402ab0 feat: show VRAM vendor on amd 2025-03-15 10:09:29 +02:00
Ilya Zlobintsev 24c5dda1f8 feat: use vulkaninfo CLI to get vulkan information, drop vulkano dependency (#490)
* feat: use vulkaninfo CLI to get vulkan information, drop vulkano dependency

* fix: add vulkan-tools as a build dependency
2025-03-14 09:04:19 +02:00
Ilya Zlobintsev c2b594ccd8 feat: bump nvml-wrapper version 2025-03-10 22:19:53 +02:00
Ilya Zlobintsev 74356e565f chore: bump dependencies 2025-03-06 19:42:43 +02:00
Ilya Zlobintsev 7ab3a4b492 dev: add test for applying sample configs and capture written commands with virtual fuse filesystem (#478)
* dev: full device config tests

* dev: add 7900xt test
2025-03-02 20:15:42 +02:00
Ilya Zlobintsev 79d1ac9ede feat: better amd fan sensor checks, retry if sensor becomes missing 2025-03-01 09:56:10 +02:00
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 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 e35c96638c fix: bump libdrm_amdgpu_sys with versioned libdrm library path 2025-01-19 22:14:22 +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 YasunoandIlya Zlobintsev 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 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 7d5d6b96e5 feat: bump amdgpu-sysfs with support for RDNA3 mobile power profile parsing 2024-12-20 00:09:47 +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