How the FPS counter works (and why it says "No game")

BRUTAL Optimizer shows a real frame rate on the dashboard, the overlay and the Hardware Monitor — but only while a game or emulator is actually running. The rest of the time it shows a dash and No game. That's intentional, and it's part of the product's honesty: there is no truthful "system FPS" on an idle desktop, so the app refuses to invent one.

How the number is measured

The counter reads the display present rate — how many frames per second are actually being pushed to your primary monitor — using a built-in Windows graphics interface (D3DKMT). It does this without injecting into the game, without ETW, and without a kernel driver, which is exactly what makes it anti-cheat-safe. Nothing is hooked into the game process.

Each second the counter diffs the display's cumulative present count; that difference is your FPS. The Hardware Monitor goes further, sampling the same source at high frequency to compute average frametime and 1% / 0.1% low frame rates.

Why it says "No game"

The FPS reading is gated on game detection. The background Guardian service watches for running games and emulators; when it spots one, it passes that process to the FPS counter as a signal to start showing a number. With no game detected, the counter returns a special "no data" value and the UI shows a dash plus No game / no game detected.

The detected game's process ID is used purely as an on/off gate — "a game is running, so show a number." It does not select which window is measured; the present rate is always the primary display's. This sidesteps an old bug where the counter tried to target an emulator's launcher process and read zero.

So if FPS is blank, the first question is: has a game actually launched, and has Guardian detected it? Quick games, very new titles, or a stopped Guardian can all leave it on No game.

The fullscreen vs. borderless caveat (read this)

Because the counter measures the display's present rate, what it reports depends on how the game presents frames:

This is a genuine limitation of any hook-free, injection-free counter — the honest price of staying anti-cheat-safe. For exact per-window FPS you'd need a tool that hooks the game, which this app deliberately avoids. If you need a true number for a borderless game, run it in fullscreen-exclusive mode.

Don't treat a borderless/emulator FPS reading as the game's internal render rate — it's likely the refresh rate. Use fullscreen-exclusive for an accurate figure, and judge smoothness by the 1% lows and frametime graph in the Hardware Monitor rather than the headline number alone.

Where you'll see FPS

All three gate on the same Guardian detection, so they agree: if one shows No game, they all do.

A note on validation

The underlying display-query constants are reverse-engineered, so the team's guidance is to sanity-check the number against a known reference (for example, cap a fullscreen game at 60 or 144 fps and confirm the counter matches). In fullscreen-exclusive it tracks the real rate; the windowed behaviour above is expected, not a defect.

Common issues / troubleshooting

FAQ

Why does the FPS counter only work when a game is running?

There's no truthful 'system FPS' on an idle desktop — the old number was just the app repainting itself. The counter is gated on game detection so it only ever shows a real frame rate during a game, and a dash with 'No game' otherwise.

My emulator runs at 120 FPS but BRUTAL shows 60 — why?

Most emulators run windowed or borderless, so Windows composites them at your monitor's refresh rate and the hook-free counter reads ~your Hz, not the emulator's internal render rate. This is a limitation of staying anti-cheat-safe. Use fullscreen-exclusive, or judge smoothness by the 1% lows in the Hardware Monitor.

Is the FPS counter safe to use online — could it trigger anti-cheat?

Yes, it's safe. It reads the display's present rate through a standard Windows interface with no game injection, no ETW provider and no kernel driver, so it doesn't touch the game process at all.

More in Monitoring

← Back to the Help Center