feat: system metrics improvements — CPU/GPU fixes and layout#14
Merged
simonCatBot merged 20 commits intomasterfrom Mar 31, 2026
Merged
feat: system metrics improvements — CPU/GPU fixes and layout#14simonCatBot merged 20 commits intomasterfrom
simonCatBot merged 20 commits intomasterfrom
Conversation
added 20 commits
March 30, 2026 23:11
…eorder layout CPU improvements: - Fix CPU speed always showing 0: use cpuInfo.speed from si.cpu() instead of cpuData.cpus[0].speed which was always 0 in systeminformation. - Add per-core load grid showing each core's individual usage %, with color coding (green/yellow/red based on load threshold). - Add CPU temperature and load average to the stats row. - Add a frequency details line (cores + MHz). GPU improvements: - Fix GPU name: route now maps marketingName (from gfx version lookup) to the name field, so UI correctly shows 'AMD Radeon 8060S' instead of the generic 'AMD Radeon Graphics' from rocminfo. - Fix GFX ID: add resolveGfxVersion() which uses the Device ID (PCI ID) to determine the correct gfx version string. Device ID 0x1502 maps to gfx1151 (Strix Point / AMD Radeon 8060S), fixing the gfx1100 mismatch that rocminfo was reporting. Also fix GFX ID display to use monospace font in the subtitle. - Move GPU temperature next to frequency in the stats row. Layout: - Move System Memory MetricRow between Processor card and GPU card (was at the bottom of the main metrics list). - CPU and GPU now have parallel detailed layouts with usage bar, stats row, and detailed info sections. API: - Add coreLoads array to CPU metrics for per-core display.
si.cpuCurrentSpeed().avg provides the actual current clock speed in MHz, replacing the static max frequency in the CPU stats row.
Previously temp was gated behind currentClockMHz in a combined conditional, so if clock was 0 temp wouldn't show either. Now each stat (temp, frequency, power) renders independently like the CPU stats row.
- Clock regex used 'Mhz' (lowercase h) but rocm-smi outputs 'Mhz' (uppercase H) — add case-insensitive /i flag to fix currentClockMHz. - Add maxClockMHz parsing: find the highest supported sclk frequency (marked with *) in the supported frequencies list. - Override maxClockMHz in detectROCm with the rocm-smi resolved value.
The --showtemperature call was failing on some systems. The temperature is already in rocm-smi -a output so we now parse it from there directly and merge it into the GPU object alongside currentClockMHz.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes and improvements to the System Metrics dashboard, plus a tab reordering.
CPU fixes
GPU fixes
Layout
API
Tests