mirror of
https://github.com/ilya-zlobintsev/LACT.git
synced 2025-02-25 18:55:26 -06:00
Show GPU usage and temperature on the OC page
This commit is contained in:
parent
f11e1489fd
commit
cd2f3ddd70
@ -104,6 +104,7 @@ pub struct GpuStats {
|
|||||||
pub fan_speed: Option<i64>,
|
pub fan_speed: Option<i64>,
|
||||||
pub max_fan_speed: Option<i64>,
|
pub max_fan_speed: Option<i64>,
|
||||||
pub voltage: Option<i64>,
|
pub voltage: Option<i64>,
|
||||||
|
pub gpu_usage: Option<u8>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Serialize, Deserialize, Debug)]
|
#[derive(Serialize, Deserialize, Debug)]
|
||||||
@ -329,6 +330,11 @@ impl GpuController {
|
|||||||
Ok(a) => Some(a.trim().parse::<u64>().unwrap() / 1024 / 1024),
|
Ok(a) => Some(a.trim().parse::<u64>().unwrap() / 1024 / 1024),
|
||||||
Err(_) => None,
|
Err(_) => None,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
let gpu_usage = match fs::read_to_string(self.hw_path.join("gpu_busy_percent")) {
|
||||||
|
Ok(a) => Some(a.trim().parse::<u8>().unwrap()),
|
||||||
|
Err(_) => None,
|
||||||
|
};
|
||||||
|
|
||||||
let (
|
let (
|
||||||
mem_freq,
|
mem_freq,
|
||||||
@ -367,6 +373,7 @@ impl GpuController {
|
|||||||
fan_speed,
|
fan_speed,
|
||||||
max_fan_speed,
|
max_fan_speed,
|
||||||
voltage,
|
voltage,
|
||||||
|
gpu_usage,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,6 +10,8 @@ pub struct StatsGrid {
|
|||||||
vram_clock_label: Label,
|
vram_clock_label: Label,
|
||||||
gpu_voltage_label: Label,
|
gpu_voltage_label: Label,
|
||||||
power_usage_label: Label,
|
power_usage_label: Label,
|
||||||
|
gpu_temperature_label: Label,
|
||||||
|
gpu_usage_label: Label,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl StatsGrid {
|
impl StatsGrid {
|
||||||
@ -37,7 +39,7 @@ impl StatsGrid {
|
|||||||
vram_usage_overlay.add(&vram_usage_bar);
|
vram_usage_overlay.add(&vram_usage_bar);
|
||||||
vram_usage_overlay.add_overlay(&vram_usage_label);
|
vram_usage_overlay.add_overlay(&vram_usage_label);
|
||||||
|
|
||||||
container.attach(&vram_usage_overlay, 1, 0, 1, 1);
|
container.attach(&vram_usage_overlay, 1, 0, 2, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
let gpu_clock_label = Label::new(None);
|
let gpu_clock_label = Label::new(None);
|
||||||
@ -81,7 +83,7 @@ impl StatsGrid {
|
|||||||
|
|
||||||
gpu_voltage_box.set_halign(Align::Center);
|
gpu_voltage_box.set_halign(Align::Center);
|
||||||
|
|
||||||
container.attach(&gpu_voltage_box, 0, 2, 1, 1);
|
container.attach(&gpu_voltage_box, 2, 1, 1, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
let power_usage_label = Label::new(None);
|
let power_usage_label = Label::new(None);
|
||||||
@ -96,7 +98,35 @@ impl StatsGrid {
|
|||||||
|
|
||||||
power_usage_box.set_halign(Align::Center);
|
power_usage_box.set_halign(Align::Center);
|
||||||
|
|
||||||
container.attach(&power_usage_box, 1, 2, 1, 1);
|
container.attach(&power_usage_box, 0, 2, 1, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
let gpu_temperature_label = Label::new(None);
|
||||||
|
{
|
||||||
|
let gpu_temperature_box = Box::new(Orientation::Horizontal, 5);
|
||||||
|
|
||||||
|
gpu_temperature_box.pack_start(&Label::new(Some("GPU Temperature:")), false, false, 2);
|
||||||
|
|
||||||
|
// gpu_temperature_label.set_markup("<b>0°C</b>");
|
||||||
|
|
||||||
|
gpu_temperature_box.pack_start(&gpu_temperature_label, false, false, 2);
|
||||||
|
|
||||||
|
gpu_temperature_box.set_halign(Align::Center);
|
||||||
|
|
||||||
|
container.attach(&gpu_temperature_box, 1, 2, 1, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
let gpu_usage_label = Label::new(None);
|
||||||
|
{
|
||||||
|
let gpu_usage_box = Box::new(Orientation::Horizontal, 5);
|
||||||
|
|
||||||
|
gpu_usage_box.pack_start(&Label::new(Some("GPU Usage:")), false, false, 2);
|
||||||
|
|
||||||
|
gpu_usage_box.pack_start(&gpu_usage_label, false, false, 2);
|
||||||
|
|
||||||
|
gpu_usage_box.set_halign(Align::Center);
|
||||||
|
|
||||||
|
container.attach(&gpu_usage_box, 2, 2, 1, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
Self {
|
Self {
|
||||||
@ -107,6 +137,8 @@ impl StatsGrid {
|
|||||||
vram_clock_label,
|
vram_clock_label,
|
||||||
gpu_voltage_label,
|
gpu_voltage_label,
|
||||||
power_usage_label,
|
power_usage_label,
|
||||||
|
gpu_temperature_label,
|
||||||
|
gpu_usage_label,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -141,5 +173,13 @@ impl StatsGrid {
|
|||||||
stats.power_avg.unwrap_or_else(|| 0),
|
stats.power_avg.unwrap_or_else(|| 0),
|
||||||
stats.power_cap.unwrap_or_else(|| 0)
|
stats.power_cap.unwrap_or_else(|| 0)
|
||||||
));
|
));
|
||||||
|
self.gpu_temperature_label.set_markup(&format!(
|
||||||
|
"<b>{}°C</b>",
|
||||||
|
stats.gpu_temp.unwrap_or_default()
|
||||||
|
));
|
||||||
|
self.gpu_usage_label.set_markup(&format!(
|
||||||
|
"<b>{}%</b>",
|
||||||
|
stats.gpu_usage.unwrap_or_default()
|
||||||
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -25,6 +25,8 @@ fn ask_for_online_update(connection: &DaemonConnection) {
|
|||||||
let mut config = connection.get_config().unwrap();
|
let mut config = connection.get_config().unwrap();
|
||||||
|
|
||||||
if let None = config.allow_online_update {
|
if let None = config.allow_online_update {
|
||||||
|
log::trace!("Online access permission not configured! Showing the dialog");
|
||||||
|
|
||||||
let diag = MessageDialog::new(
|
let diag = MessageDialog::new(
|
||||||
None::<&Window>,
|
None::<&Window>,
|
||||||
DialogFlags::empty(),
|
DialogFlags::empty(),
|
||||||
|
Loading…
Reference in New Issue
Block a user