Skip to content

v0.4.0 — CPU power cap, fan curve editor, limited mode

Latest

Choose a tag to compare

@I4cTime I4cTime released this 26 Sep 21:52
· 1 commit to main since this release
7651cd7

CPU power cap

  • A per-power-mode ceiling on the CPU's performance state (intel_pstate max_perf_pct), written on every mode switch and re-asserted after resume. cryoctl cap 90, cryoctl cap gmode 95, cryoctl cap off; a CPU power panel in the GUI (Turbo Boost moved in next to it) with a per-mode slider that reads in this machine's GHz and lists every capped mode; cap on cryoctl status's power line.
  • Measured on the m18 R2 in-game: 90% ≈ 5.2 GHz took the CPU from 56 W and a 96 °C peak to 44 W and 87 °C while the GPU got more headroom. Probed as a capability (cpu_cap); hidden on amd_pstate.

Fan curve editor

  • CPU and GPU curves drawn as charts with the live temperature and the Thermal Guard's trip temperature marked, per-point editing, add/remove, revert/apply, plus hysteresis, minimum step and guard trip/release thresholds — all inside the Fan control panel behind Edit/Done. A Use Custom mode button sits where the panel used to only advise it.
  • From the shell: cryoctl curve cpu 45:0 60:15 70:35 80:60 95:100, cryoctl curve hysteresis 2, cryoctl guard cpu 90, cryoctl guard release 8, plus curve show / guard show.
  • Every set_config patch is validated before it is merged or saved: 2–8 points with rising temperatures and non-falling boosts, bounded hysteresis/step, guard trips 60–105 °C, caps 10–100. The daemon re-arms curve state and caps after a patch.

Limited mode + hardware verdict (#9)

  • A machine whose alienware-wmi driver exposes no hwmon and/or no platform profiles no longer stops cryod. Fans, curves, the guard and power modes are out, but GPU telemetry, game detection, the turbo toggle, the CPU cap and lighting still run where present; every client hides the rest and the GUI shows an amber limited-mode notice.
  • cryoctl doctor ends with a SUPPORTED / PARTIAL / LIMITED / UNSUPPORTED verdict with the reasons, reports the cap control, and exits 2 when unsupported. Only a machine with nothing at all to drive makes cryod log one plain-language reason and exit 78 — listed in RestartPreventExitStatus, so no restart loop.
  • New page: cryo.i4c.studio/compatibility.

GUI

  • Automation's rule line is derived from your config (and the game rule only shows when NVML exists); the header no longer prints the brand twice; the turbo switch re-syncs from telemetry like the other switches.

Config

  • /etc/cryo/config.json is rewritten only when you change a setting from the GUI or cryoctl curve/guard/cap — validated first, and keys you never touched keep tracking new defaults. New cpu_cap section (enabled, profiles).
  • Tests 37 → 68.

Upgrading

cd cryo && git pull && sudo ./packaging/install.sh

The installer restarts cryod and installs the updated unit file. Existing config files keep working.

Full Changelog: v0.3.1...v0.4.0