Desktop app · Windows 10 / 11 (x64)
CoreGaze
An always-on-top system monitor overlay for Windows.
- 5live metric groups
- 8GPU adapters tracked at most
- 7GPU engine types per adapter
- 14design documents
The problem
Checking CPU, memory or GPU load usually means opening Task Manager and covering what you were doing. I wanted the numbers always visible, without the overlay getting in the way of clicks or costing much itself.
What I built
CoreGaze draws a compact heads-up display on top of every window. It lets mouse clicks pass through to the apps underneath; holding Alt makes it movable.
- CPU utilisation and clock speed, RAM used and total, GPU load and memory, disk and network activity.
- Colour alerts when a value crosses a threshold.
- A global hotkey to show or hide it, and tray controls to choose which rows appear.
- Start with Windows, a single-instance guard and crash diagnostics.
How it works
- GPU data from two sources. Video memory comes from DXGI (
IDXGIAdapter3::QueryVideoMemoryInfo). Utilisation comes from Windows performance counters (PDH), grouped by engine: 3D, compute, copy, decode, encode, video processing and GDI. The busiest engine becomes the adapter’s headline value. - Several adapters. At start-up it enumerates up to eight graphics adapters and matches each counter to its adapter by LUID, so laptops with integrated and dedicated GPUs show both.
- Cheap rendering. Metrics are collected on a low-overhead cadence into snapshots. Each frame only draws the latest snapshot, so rendering never waits on data collection.
Shipping it
A one-command PowerShell release script builds the app with CMake, downloads the VC++ runtime if it is missing, and bundles it into an Inno Setup installer. The installer keeps a stable AppId so upgrades replace the old version cleanly. Each subsystem, such as the hotkey, tray, GPU metrics, startup management and installer upgrades, has its own design document in docs/.