Commit Graph
101 Commits
Author SHA1 Message Date
Ilya Zlobintsev e2caa24ca8 feat: add displays info (#1052)
* test

* feat: dp info on amd

* chore: add other display types

* feat: use libdisplay-info, add screen size

* feat: add GUI

* feat: WIP nvidia

* feat: reuse display handle

* chore: clippy fixes

* chore: cleanup

* chore: make display-info an optional feature, add build dependency

* fix: ci

* fix ui imports

* fix: add new dependency to flatpak

* fix: add hwdata flatpak module
2026-06-19 22:22:03 +03:00
Ilya Zlobintsev 8864b6284b perf: fetch Vulkan/OpenCL info asynchronously after startup (#1046) 2026-05-28 09:14:47 +03:00
Roman Makarov 35f548bc25 feat: support amd deep sleep state (#1035)
* upd deps

* migrate to PowerLevelId

* update snapshot

* cleanup

* fix fmt
2026-05-24 00:24:12 +03:00
Ilya Zlobintsev 09f1bc1893 feat: filter out "non-primary" temperatures for immediate display, move them to a popdown (#959)
* feat: filter out "non-primary" temperatures for immediate display, move them to a popdown

* fix: use different item based on presence of secondary sensors
2026-04-18 18:16:16 +03:00
Ilya Zlobintsev 3d5c216374 feat: add Nvidia VF curve editor (#957)
* feat: WIP nvidia VF curve support

* feat: drag whole curve by holding shift

* feat: add right click menu to flatten curve

* feat: more controls on the VF curve, add button to open editor

* feat: add locked clocks indicators to vf curve

* chore: hide editor button on no curve

* feat: make visible curve range configurable

* fix: disallow right click menu when readonly

* chore: button sizing
2026-04-18 16:17:52 +03:00
Ilya Zlobintsev 197414f597 feat: report AMD IP info (#942)
* feat: report AMD IP info (daemon part)

* feat: basic ui

* chore: update screenshots

* feat: improve ip info ui
2026-03-20 09:37:13 +02:00
Roman Makarov d1351fb27d feat: improve gpu stats UI (#903)
* gpu-stats: split into 2 sections

* wip

* move clocks to the top

* use p-states to calcualte min/max

* re-arrange layout

* add css

* remove % sign from fmt_fan

* clean up

* make spacing more consistent

* refactor clocks level

* fix typo and remove unnecessary margin

* fix warning

* switch stats and leverbars

* add default width

* upd stat minwidth

* add GpuStatsSectionMsg

* add a test-case for fmt_human_bytes with 90mb and GB precision
2026-02-26 19:45:20 +02:00
Ilya Zlobintsev e5a3eb1509 chore: update to rust 2024 edition (#889)
* chore: bump rust edition to 2024

* chore: another chunk of clippy fixes

* chore: fix warning in bindings

* chore: restructure awkward unsafe blocks

* chore: reformat

* chore: clippy fix

* chore: bump rust release in docker build
2026-01-31 23:43:43 +02:00
Roman Makarov 05c85cd111 feat: refactor formatters and add gui tests (#883)
* move formatters to formatting file and add tests

Signed-off-by: Roman Makarov <rmakarov94@gmail.com>

* implement feedback

* fmt

* fix i18n mock

* fmt

* move tests

* trim .0 differently

---------

Signed-off-by: Roman Makarov <rmakarov94@gmail.com>
2026-01-31 21:24:33 +02:00
Roman Makarov b1ea5215a3 feat: update defaults for PageContent and InfoRow (#854)
* upd style for the power limit widget

* re-ogranise content of gpu stats block

* rework InfoRow component to use dim labels

* update PageSection

* page_section: set the default padding

* migrate custom PageContent children to InfoRow

* add info_row_level component

* fix fmt

* page_section fmt

* use css consts from relm

* make info_row parent of info_row_level

* fix fmt

* set max_children_per_line to 2

* upd info page to fit 2 rows

* upd software page

* software_page: upd opencl and handle set_visible correctly

* migrate features and extensions to separate clickable rows instead of buttons

* fmt

* rework cache-row to fit current design

* move cache-info InfoRow into main FlowBox

* add frame with accent color for non-adw build

* remove offsets from the level_bar to

* "fix" warning

* remove recolor for the frame border

* thermals page: move InfoRows into flowBox

* add warning css on oc-warning

* add margin to pstates to follow the margins of other elements

* page_section: move styles to macro, remove container class from thermals_page widget

* fmt

* fix thermals Stack container

* remove unused import

* remove some checker exceptions from setters on InfoRowExt

* add spacing 5 between info row value and label

* fix warnings and use view macro on info_row_level

* set static width for the main container

* add hover effect clickable infoRows

* set set_max_children_per_line: 4

* use include_str! to load css

* set `set_max_children_per_line` to 4 consistently
2026-01-17 17:14:31 +02:00
Ilya Zlobintsev 6c3bbdaccc feat: fetch OpenCL info through clinfo, show multiple OpenCL platforms (#836)
* feat: fetch OpenCL info through clinfo cli

* feat: support multiple OpenCL platforms in GUI

* chore: update OpenCL dependencies

* chore: update flatpak sources

* feat: add clinfo to debug snapshot

* fix: add epel repo to rhel builds

* chore: match all devices in fallback path

* feat: add clinfo to flatpak

* fix: flatpak clinfo build
2025-12-25 14:06:02 +02:00
Ilya Zlobintsev 3222deea56 feat: add readings for extra power sensors (#833)
* feat: add readings for extra power sensors

* chore: add strix point snapshot

* chore: drop buggy socket power measurement
2025-12-23 15:28:22 +02:00
Ilya Zlobintsev bcbd000d9c fix: show units in bar size 2025-12-21 21:48:24 +02:00
Ilya Zlobintsev f319c3f50f feat: add extra temperature and voltage readings on AMD (#798)
* feat: add extra temperature and voltage readings on AMD

* fix: use correct temperature scale

* fix: correct temperature values

* feat: add additional clockspeed measurements

* chore: adjust labels

* fix: typo in name
2025-11-16 21:50:11 +02:00
Ilya Zlobintsev 7db5d2f141 feat: detect device features on the daemon side, disable more ui elements for what's not supported (#750)
* feat: detect device features on the daemon side, disable more ui elements for what's not supported

* fix: use device flag for fan control sensitivty
2025-09-14 17:02:15 +03:00
Ilya Zlobintsev 9636543540 feat: select first dedicated GPU by default 2025-08-26 20:44:23 +03:00
Ilya Zlobintsev 57f92ae319 feat: updated overdrive enable logic with rpm-ostree support (#694)
* feat: updated overdrive enable logic with rpm-ostree support

* feat: new overdrive toggle ui

* fixes
2025-08-06 22:19:57 +03:00
Ilya Zlobintsev 4e7c7c85e0 feat: read AMD cache size info from kfd sysfs (#623)
* feat: read AMD cache size info from kfd sysfs

* feat: populate cache info correctly

* feat: ui for detailed cache info

* chore: improve text
2025-08-01 08:09:57 +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 3930acc621 feat: show device type (integrated/dedicated) (#657) 2025-07-06 09:35:15 +03:00
Ilya Zlobintsev de6b1ec9cb feat: add profile command hooks (#656)
* feat: add profile command hooks

* chore: cleanup

* chore: update config documentation
2025-07-05 15:36:51 +03:00
Ilya Zlobintsev 85248b236c feat: add process monitor (#633)
* feat: WIP process monitor

* wip

* feat: theoretically working fdinfo stats fetch

* chore: update test snapshots

* fix: fdinfo calculations

* feat: add amd vram key

* chore: skip pid 1

* feat: process search filter

* chore: reduce log verbosity

* chore: update test snapshots with new hwdata
2025-06-27 21:18:41 +03:00
Ilya Zlobintsev b5ac9720ac fix: rename vulkan info field for backwards compat 2025-06-27 20:55:24 +03:00
Ilya Zlobintsev 5637792492 fix: avoid deserialization error with old vulkan format response 2025-06-27 19:47:49 +03:00
Ilya Zlobintsev 40827284ec feat: allow selecting between multiple vulkan drivers (#632)
* feat: support querying multiple vulkan drivers

* fix: set env to disable amdvlk forcing itself
2025-06-27 09:42:38 +03:00
Ilya Zlobintsev 5007f48208 feat: better PCIe link speed display 2025-05-24 12:42:47 +03:00
Ilya Zlobintsev af15a0fb50 feat: support profile rules with and/or conditions (#582)
* feat: support profile rules with and/or conditions

* feat: updated UI

* chore: make profile info text more clea

* chore: set transient parent for dialogs
2025-05-18 23:52:50 +03:00
Ilya Zlobintsev b9c9837a05 chore: improve vram type text 2025-05-11 14:34:28 +03:00
Ilya Zlobintsev 7605294722 feat: show temperature key option in the UI when it is supported (#569) 2025-05-11 11:30:30 +03:00
Ilya Zlobintsev 6b57b487b3 feat: zero RPM support on nvidia via automatic fan mode threshold temp (#567)
* feat: zero RPM support on nvidia via automatic fan mode threshold temperature

* chore: update docs
2025-05-10 16:30:30 +03:00
Ilya Zlobintsev ca5c715475 feat: new fan control UI (#566)
* feat: WIP fan control graph

* feat: show unsaved config when confirming

* feat: use range limits for graph rendering

* feat: adding/removing points

* feat: curve options

* feat: static speed setting

* feat: show all temperatures on OC page

* feat: PMFW options

* chore: minor improvement

* chore: cleanup
2025-05-09 23:03:02 +03:00
Ilya Zlobintsev 026356990a feat: show ROP info on AMD, better VRAM info display (#565)
* feat: show ROP info on AMD, better VRAM info display

* fix: swapped values
2025-05-05 18:15:59 +03:00
Ilya Zlobintsev 9ca20ebcba fix: intel subslice count 2025-05-04 09:48:15 +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 980f383df6 feat: show ISA version (#552) 2025-04-18 18:12:15 +03:00
Ilya Zlobintsev 0064fd9224 feat: new GPU config socket API (#546)
* feat: GetGpuConfig API

* wip

* fix: map deserialization

* fix: clocks map deserialization

* chore: update API documentation
2025-04-14 21:19:50 +03: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 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 c61957af1f feat: use same hardware info list for GUI and CLI 2025-03-16 14:18:32 +02:00
Ilya Zlobintsev fede73ada6 feat: use Nvidia driver ioctl directly to show more info (SM/ROP count, VRAM type and vendor) (#492)
* feat: show ROPs count

* feat: show VRAM type

* feat: show L2 cache size

* feat: SM and tensor counts

* feat: show VRAM vendor

* fix: drop invalid tensor core count info
2025-03-15 10:01:58 +02:00
Ilya Zlobintsev 9ab884fea7 feat: support for setting locked clocks on nvidia (#488)
* feat: support applying locked clocks on nvidia

* wip

* feat: locked clocks ui
2025-03-14 10:18:59 +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 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 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 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 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 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