From 51e187ef2a022d6c807c50ba892a3d0cfb4d7058 Mon Sep 17 00:00:00 2001 From: Ilya Zlobintsev Date: Wed, 15 Nov 2023 21:58:21 +0200 Subject: [PATCH] feat: use new power1_input interface instead of average when it is available --- Cargo.lock | 4 ++-- lact-daemon/src/server/gpu_controller/mod.rs | 1 + lact-gui/src/app/root_stack/oc_page/stats_frame.rs | 7 ++++++- lact-schema/Cargo.toml | 2 +- lact-schema/src/lib.rs | 1 + 5 files changed, 11 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b954a92e..71ce0340 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -40,9 +40,9 @@ dependencies = [ [[package]] name = "amdgpu-sysfs" -version = "0.12.2" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a20a5d3ccaa6f829840888988fd74dbc5166340d0c7ffd24d2c4d715a4d90bc9" +checksum = "b2563dbe2f3443f41116df5a23ae6b977f80feb7e5ca2fe6a4f3eb27042ecb08" dependencies = [ "enum_dispatch", "serde", diff --git a/lact-daemon/src/server/gpu_controller/mod.rs b/lact-daemon/src/server/gpu_controller/mod.rs index c820e851..5b514d6a 100644 --- a/lact-daemon/src/server/gpu_controller/mod.rs +++ b/lact-daemon/src/server/gpu_controller/mod.rs @@ -267,6 +267,7 @@ impl GpuController { }, power: PowerStats { average: self.hw_mon_and_then(HwMon::get_power_average), + current: self.hw_mon_and_then(HwMon::get_power_input), cap_current: self.hw_mon_and_then(HwMon::get_power_cap), cap_max: self.hw_mon_and_then(HwMon::get_power_cap_max), cap_min: self.hw_mon_and_then(HwMon::get_power_cap_min), diff --git a/lact-gui/src/app/root_stack/oc_page/stats_frame.rs b/lact-gui/src/app/root_stack/oc_page/stats_frame.rs index adefd4f6..90c33f28 100644 --- a/lact-gui/src/app/root_stack/oc_page/stats_frame.rs +++ b/lact-gui/src/app/root_stack/oc_page/stats_frame.rs @@ -108,13 +108,18 @@ impl StatsFrame { let PowerStats { average: power_average, + current: power_current, cap_current: power_cap_current, .. } = stats.power; + let power_current = power_current + .filter(|value| *value != 0.0) + .or(power_average); + self.power_usage_label.set_markup(&format!( "{}/{}W", - power_average.unwrap_or(0.0), + power_current.unwrap_or(0.0), power_cap_current.unwrap_or(0.0) )); diff --git a/lact-schema/Cargo.toml b/lact-schema/Cargo.toml index 790e7d29..f381bcdd 100644 --- a/lact-schema/Cargo.toml +++ b/lact-schema/Cargo.toml @@ -7,7 +7,7 @@ edition = "2021" args = ["clap"] [dependencies] -amdgpu-sysfs = { version = "0.12.2", features = ["serde"] } +amdgpu-sysfs = { version = "0.12.3", features = ["serde"] } serde = { version = "1.0", features = ["derive"] } indexmap = { version = "*", features = ["serde"] } clap = { version = "4.4.6", features = ["derive"], optional = true } diff --git a/lact-schema/src/lib.rs b/lact-schema/src/lib.rs index 3335168c..7a5e97fc 100644 --- a/lact-schema/src/lib.rs +++ b/lact-schema/src/lib.rs @@ -218,6 +218,7 @@ pub struct VramStats { #[derive(Serialize, Deserialize, Debug, Clone, Copy)] pub struct PowerStats { pub average: Option, + pub current: Option, pub cap_current: Option, pub cap_max: Option, pub cap_min: Option,