A GPU with nothing measurable is one line, not half the Processes page

The Mac's Asahi GPU exposes no busy counter, clock, sensor or memory reading, so
its box was a graph that could never draw beside a column of dashes. A GPU with
nothing to read now gets one line (driver, "nothing measurable" or the stall,
and whether a process has it open), its row shrinks to fit, and the Gpu% column
and gpu sort are dropped when no GPU on the machine can light them. QoL #3 from
bug bash 6 (BUGS.md).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Mitchell-Johnson
2026-10-07 19:31:25 -07:00
co-authored by Claude Opus 5.5
parent f3ca3d8f73
commit 7d0b87bc45
3 changed files with 42 additions and 10 deletions
+9 -2
View File
@@ -712,8 +712,15 @@ before its own login).
session unused for seven days signs itself out (`auth.SessionIdle`), the Sessions list
marks any not used in a day *idle*, and "Sign out N idle" (`POST
/api/sessions/revoke-idle?hours=24`) drops those while leaving every device used since.
3. **The Mac's GPU box takes half the Processes page** to say Asahi exposes no counters; a
GPU with nothing measurable could be one line.
3. ✅ **The Mac's GPU box takes half the Processes page** — built 2026-10-07. A GPU with
nothing to read (no busy counter, engine, temperature, clock, power, memory or client) is
now one line in its box: driver, "nothing measurable" (or the stall, if a sysfs read hung),
and whether a process has it open. Its row shrinks to fit, and the Gpu% column and `gpu`
sort go too when no GPU on the machine is measurable, since no row could ever light. A
client opening the device brings the full box back. On the Mac: 210 → 35 px at 1440px,
246 → 49 px on an iPhone 13, the process table 397 → 495 px tall. Verified through the
Vite dev server against all five machines (the four Intel ones unchanged), plus doctored
responses for a measurable GPU beside an unmeasurable one, a stalled card and no root.
4. **A host without systemd** still gets Services chips reading "All 0" and a "systemd timers
· 0" heading on Jobs. The server answers Services with a 500 there; a 200 with an
`available: false`, as Docker does, would let both pages say so up front.