Fix unecessary calls to on_set() from battery vibe checks and reset ppt to default instead of max

This commit is contained in:
NGnius (Graham) 2023-04-01 20:43:26 -04:00
parent d654e3ee06
commit 2f8c0a0172
9 changed files with 18 additions and 12 deletions

2
backend/Cargo.lock generated
View file

@ -1053,7 +1053,7 @@ dependencies = [
[[package]] [[package]]
name = "powertools" name = "powertools"
version = "1.3.0-beta4" version = "1.4.0-alpha"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"libryzenadj", "libryzenadj",

View file

@ -1,6 +1,6 @@
[package] [package]
name = "powertools" name = "powertools"
version = "1.3.0-beta4" version = "1.4.0-alpha"
edition = "2021" edition = "2021"
authors = ["NGnius (Graham) <ngniusness@gmail.com>"] authors = ["NGnius (Graham) <ngniusness@gmail.com>"]
description = "Backend (superuser) functionality for PowerTools" description = "Backend (superuser) functionality for PowerTools"

View file

@ -355,7 +355,7 @@ impl ApiMessageHandler {
} }
} }
} }
true false // on_power_event() should apply everything
} }
ApiMessage::WaitForEmptyQueue(callback) => { ApiMessage::WaitForEmptyQueue(callback) => {
self.on_empty.push(callback); self.on_empty.push(callback);

View file

@ -10,7 +10,7 @@ const ALLOWED_ERROR: f64 = 100.0; // period of 10ms with 100x means sleep has to
pub fn spawn(sender: Sender<ApiMessage>) -> JoinHandle<()> { pub fn spawn(sender: Sender<ApiMessage>) -> JoinHandle<()> {
thread::spawn(move || { thread::spawn(move || {
log::info!("resume_worker starting..."); log::info!("resume_worker starting...");
let duration = Duration::from_millis(10); // very low so it detects before Steam client does let duration = Duration::from_millis(50); // very low so it detects before Steam client does
// this allows PowerTools to set some values at wakeup and Steam to override them before user notices // this allows PowerTools to set some values at wakeup and Steam to override them before user notices
let mut start = Instant::now(); let mut start = Instant::now();
loop { loop {

View file

@ -96,23 +96,23 @@ impl OnSet for Settings {
fn on_set(&mut self) -> Result<(), Vec<SettingError>> { fn on_set(&mut self) -> Result<(), Vec<SettingError>> {
let mut errors = Vec::new(); let mut errors = Vec::new();
log::debug!("Applying settings for on_resume"); log::debug!("Applying settings for on_set");
self.general self.general
.on_set() .on_set()
.unwrap_or_else(|mut e| errors.append(&mut e)); .unwrap_or_else(|mut e| errors.append(&mut e));
log::debug!("Resumed general"); log::debug!("Set general");
self.battery self.battery
.on_set() .on_set()
.unwrap_or_else(|mut e| errors.append(&mut e)); .unwrap_or_else(|mut e| errors.append(&mut e));
log::debug!("Resumed battery"); log::debug!("Set battery");
self.cpus self.cpus
.on_set() .on_set()
.unwrap_or_else(|mut e| errors.append(&mut e)); .unwrap_or_else(|mut e| errors.append(&mut e));
log::debug!("Resumed CPUs"); log::debug!("Set CPUs");
self.gpu self.gpu
.on_set() .on_set()
.unwrap_or_else(|mut e| errors.append(&mut e)); .unwrap_or_else(|mut e| errors.append(&mut e));
log::debug!("Resumed GPU"); log::debug!("Set GPU");
if errors.is_empty() { if errors.is_empty() {
Ok(()) Ok(())

View file

@ -214,7 +214,7 @@ impl Gpu {
}); });
} else if self.state.fast_ppt_set { } else if self.state.fast_ppt_set {
self.state.fast_ppt_set = false; self.state.fast_ppt_set = false;
let fast_ppt = self.limits.fast_ppt.max; let fast_ppt = self.limits.fast_ppt_default;
let fast_ppt_path = gpu_power_path(FAST_PPT); let fast_ppt_path = gpu_power_path(FAST_PPT);
usdpl_back::api::files::write_single(&fast_ppt_path, fast_ppt) usdpl_back::api::files::write_single(&fast_ppt_path, fast_ppt)
.map_err(|e| SettingError { .map_err(|e| SettingError {
@ -245,7 +245,7 @@ impl Gpu {
}); });
} else if self.state.slow_ppt_set { } else if self.state.slow_ppt_set {
self.state.slow_ppt_set = false; self.state.slow_ppt_set = false;
let slow_ppt = self.limits.slow_ppt.max; let slow_ppt = self.limits.slow_ppt_default;
let slow_ppt_path = gpu_power_path(SLOW_PPT); let slow_ppt_path = gpu_power_path(SLOW_PPT);
usdpl_back::api::files::write_single(&slow_ppt_path, slow_ppt) usdpl_back::api::files::write_single(&slow_ppt_path, slow_ppt)
.map_err(|e| SettingError { .map_err(|e| SettingError {

View file

@ -123,7 +123,9 @@ impl Default for CpuLimits {
#[derive(Serialize, Deserialize, Clone, Debug)] #[derive(Serialize, Deserialize, Clone, Debug)]
pub(super) struct GpuLimits { pub(super) struct GpuLimits {
pub fast_ppt: MinMax<u64>, pub fast_ppt: MinMax<u64>,
pub fast_ppt_default: u64,
pub slow_ppt: MinMax<u64>, pub slow_ppt: MinMax<u64>,
pub slow_ppt_default: u64,
pub ppt_divisor: u64, pub ppt_divisor: u64,
pub ppt_step: u64, pub ppt_step: u64,
pub clock_min: MinMax<u64>, pub clock_min: MinMax<u64>,
@ -139,10 +141,12 @@ impl Default for GpuLimits {
min: 1000000, min: 1000000,
max: 30_000_000, max: 30_000_000,
}, },
fast_ppt_default: 15_000_000,
slow_ppt: MinMax { slow_ppt: MinMax {
min: 1000000, min: 1000000,
max: 29_000_000, max: 29_000_000,
}, },
slow_ppt_default: 15_000_000,
ppt_divisor: 1_000_000, ppt_divisor: 1_000_000,
ppt_step: 1, ppt_step: 1,
clock_min: MinMax { clock_min: MinMax {

View file

@ -1,6 +1,6 @@
{ {
"name": "PowerTools", "name": "PowerTools",
"version": "1.3.0-beta4", "version": "1.4.0-alpha",
"description": "Power tweaks for power users", "description": "Power tweaks for power users",
"scripts": { "scripts": {
"build": "shx rm -rf dist && rollup -c", "build": "shx rm -rf dist && rollup -c",

View file

@ -111,10 +111,12 @@
"min": 1000000, "min": 1000000,
"max": 30000000 "max": 30000000
}, },
"fast_ppt_default": 15000000,
"slow_ppt": { "slow_ppt": {
"min": 1000000, "min": 1000000,
"max": 29000000 "max": 29000000
}, },
"slow_ppt_default": 15000000,
"ppt_divisor": 1000000, "ppt_divisor": 1000000,
"ppt_step": 1, "ppt_step": 1,
"clock_min": { "clock_min": {