Skip to content

v3.31.0 - Native NSMenu + Kext Cleanup + Zen Family Profiles

Choose a tag to compare

@DrogaBox DrogaBox released this 16 Jul 21:53
· 591 commits to master since this release

v3.31.0

Fix: Context Menu Flickering (Size submenu)

Replaced SwiftUI's .contextMenu() with native AppKit NSMenu via NSViewRepresentable. The Size submenu no longer flickers or closes when the chart re-renders on telemetry ticks.

Fix: Size changes not applying

UserDefaults key in setHeight() was mismatched with ResizableChart.init() read key for memory and cores charts -- fixed by using "chart_h_" + chartId directly.

Core Grid: Size disabled

Core Grid chart has a fixed layout -- Size submenu is now disabled (grayed out).

Kext Cleanup -- What We Removed and Why

Every cleanup has the same punchline: Intel code living in an AMD driver.

Removed Why
MWAIT idle strategy AMD CPUs don't use MWAIT for C-states -- it is a no-op. Only sti;hlt works on Zen. Like a cupholder on a motorcycle.
IO_CSTATE (pmRyzen_exit_idle()) Dead code since Zen 2. Compiled but did nothing -- like a meeting that should have been an email.
cppcReadAllowed / cppcWriteAllowed Every CPU profile set both to false. Vestigial since Vermeer. Like a spare key for a car sold years ago.
telemetryAllowed renamed to cppcReadInInit Controlled CPPC register reads, not telemetry. Old name was like calling your refrigerator "the warm closet."
Redundant cpuArchName block Set cpuArchName twice in start() -- profile always overwrote it. First vote counted, then thrown out.
CPUID MWait leaf log We removed MWAIT. Logging its CPUID leaf after that is like checking the temperature of an unplugged stove.

CPU Family Profiles

  • Explicit profiles for all 8 Zen generations (Zen 1 through Zen 5)
  • New CPUProfile selector (26) exposed to userspace via IOKit
  • Dashboard badge showing active profile (Telemetry-only / Full PM Dispatch)
  • Profile-aware IOLog on boot and NSLog on app launch

Documentation

  • Added "What We Removed and Why (v3.31.0)" section to README -- technical rationale with humor
  • Updated supported processors table with all 8 profiles and feature flags
  • Updated user manual (EN + ES) with v3.31.0 features
  • Removed stale PDF versions of manuals (markdown is authoritative)

Other

  • Version bumped to 3.31.0