Apple Silicon VRAM utilization duplicates GPU activity
Describe the bug
On Apple Silicon, the GPU collector advertises memory utilization support but feeds mem_utilization_percent with the GPU active-residency percentage:
gpus_slice[0].mem_utilization_percent.push_back(gpu_utilization);As a result, the VRAM section displays a Utilization graph that exactly duplicates GPU activity. This is not memory-controller or memory-bandwidth utilization. Unified-memory capacity usage is already reported independently by mem_used and mem_total.
To Reproduce
- Build current
mainwith GPU support on an Apple Silicon Mac. - Enable the GPU box.
- Observe the GPU percentage and the VRAM
Utilizationpercentage over several samples. - Both series have identical values because the collector writes the same value to both.
Expected behavior
Do not advertise mem_utilization when no memory-utilization counter is being collected. Keep unified-memory total and used capacity visible. A future real IOReport memory-bandwidth metric could enable the series again.
Screenshots
Observed on an M4 Max: GPU activity and VRAM Utilization both showed 67%, while unified-memory capacity usage independently showed 40/51 GB (80%).
Info (please complete the following information):
- btop++ version:
1.4.7+ccdf285 - Binary: self compiled from current
main - Architecture:
arm64 - Platform: macOS
- OS release version: macOS 26.6.2 (25G83)
- Terminal used: Terminal.app
- Font used: terminal profile font; not relevant to the metric
Additional context
The Apple Silicon backend currently enables .mem_utilization = true in src/osx/btop_collect.cpp, but its IOReport subscription only collects GPU performance-state residency and GPU energy for this area. The proposed fix is to set .mem_utilization = false and stop appending GPU utilization to the memory-utilization series.
Source: aristocratos/btop