An FPS Overlay That Never Touches Your Game

An FPS Overlay That Never Touches Your Game

A good fps overlay answers two questions while you play: how many frames per second you're getting, and whether those frames arrive smoothly. The trap is that the wrong overlay gets that number by hooking into the game's renderer — and that's exactly the behavior kernel anti-cheat treats as a threat. The better way reads frames from outside the game entirely.

This guide covers what an overlay actually measures, why 1% and 0.1% lows tell you more than average FPS, and how an overlay can read your framerate without ever touching the game. If you run Valorant, Fortnite, Apex, or anything with a kernel anti-cheat, the gap between "reads present frames" and "injects into the process" is the gap between a tool that never touches the game and one whose method looks like cheating.

What an FPS overlay measures: frames vs. frametimes

Your GPU finishes rendering a frame and hands it to Windows to display. Count those handoffs in one second and you have your FPS. That's the number every fps counter shows in the corner.

But FPS is an average, and averages hide the spikes that ruin a match. The more honest measurement is the frametime — how many milliseconds each individual frame took. At a steady 60 FPS, every frame takes about 16.7 ms. At 144 FPS, about 6.9 ms. Smoothness isn't a high average; it's consistent frametimes with no sudden jumps.

Here's why that distinction matters. You can run at "100 FPS average" and still feel like garbage, because the average smooths over a single 50 ms frame that landed mid-fight. Your eyes don't see the average. They see the stutter.

FPS tells you the ceiling. Frametimes tell you whether you actually live near that ceiling, or keep falling off it.

A good overlay shows both: a live FPS number for quick glances, and a frametime graph — a small line that should read like a flat ribbon, not a mountain range. If a game ever "feels" worse than its FPS suggests, the frametime graph is where the answer hides. We cover the deeper diagnosis in fixing stutter and frametime spikes.

1% and 0.1% lows: the numbers that reveal stutter

This is the part most people skip, and it's the most useful number on the screen.

Take every frametime over the last 60 seconds and sort them from best to worst. The 1% low summarises the slowest 1% of your frames. Some tools report the boundary of that slowest 1% (the 99th-percentile frametime); BRUTAL Optimizer's overlay reports their average, the stricter reading, because a boundary can't show how bad the worst frames got. The 0.1% low goes further: the worst one frame in a thousand. Those are your stutters, your hitches, the moments the game lurched.

Why watching 1% lows beats staring at average FPS:

  • Average FPS hides the pain. 120 average with a 40 FPS 1% low is a stuttery mess. 120 average with a 95 FPS 1% low is buttery.
  • The gap is the diagnosis. A wide spread between average and 1% low points to inconsistency — shader compilation, background tasks, thermal throttling, or a CPU that can't keep up with the GPU.
  • It's measurable, not vibes. Apply one change, replay the same area, and check whether the 1% low moved. That's how you tune honestly instead of guessing.

A practical reading: if average and 1% low are close (within roughly 15-20%), your experience is smooth, and you can chase a higher average if you want more. If the gap is huge, fix consistency first — more average FPS won't fix stutter. If the stutter tracks one component maxing out, the next step is figuring out whether your GPU or CPU is the bottleneck.

Worth doing Watch your 1% low for 30-60 seconds of real gameplay (not a menu), then change one thing and re-test the same scene. That's the entire science of FPS tuning. Everything else is reading tea leaves.

How most overlays hook the game — and the anti-cheat risk

To draw an FPS counter inside the game window, most overlay tools insert their own code into the game's graphics pipeline. The common methods:

  • DLL injection — loading the overlay's code into the game's process so it can hook DirectX/Vulkan calls and draw on top.
  • API hooking — intercepting Present() (the Direct3D call that shows a finished frame) from inside the game to count frames and render the counter.

This works, and for years it was normal. The problem: injecting code into a running game and hooking its render calls is indistinguishable from how many cheats operate. Aimbots and wallhacks use the same techniques.

So kernel-level anti-cheat — Riot's Vanguard, Easy Anti-Cheat, BattlEye — watches for exactly this. Depending on the title and the tool, an injecting overlay can get blocked, make the game refuse to launch, trigger a crash, or in the worst case flag your account. Even when it's "allowed," you're relying on the anti-cheat vendor to keep whitelisting that specific tool, version by version.

Not every injecting overlay gets you banned. But you've handed your account's safety to a tool whose method looks like cheating, and you're trusting two vendors to keep agreeing it's fine. That's a bet you don't need to make. We go deeper on where that line sits in the four bright lines for optimizing around anti-cheat and whether a PC tool can get you banned.

Skip it Don't run an overlay that injects into a kernel-anti-cheat game just to see a number. The risk-to-reward is terrible — you're gambling an account against a counter you can get a safer way.

The no-injection approach: read present frames from outside

There's a way to count frames without touching the game. Windows itself knows when each frame is presented, because the game asks Windows to display it.

Two mechanisms make this possible from outside the game:

  • Graphics-kernel present events — Windows' graphics kernel records an event each time a game presents a frame, per process and window. Count one game's events and you have its frame rate, windowed or full screen; you inject nothing to get it. (Older counters read the display's running present count instead, which in a window only follows the desktop's refresh.)
  • Present timing — the gaps between those presents are your frametimes, and the slowest of them are your 1% and 0.1% lows.

The key property: this is observation, not interception. The overlay sits in its own process, reads counters Windows already publishes, and draws its own always-on-top window beside the game. The game's memory is untouched. No DLL goes into it. No render call is hooked. From the anti-cheat's view, nothing suspicious is happening inside the protected process — because nothing is.

This is how BRUTAL Optimizer's free overlay works. On Windows 11 it counts the game's own present events, derives FPS, frametimes, and 1% lows from that stream, and renders in a separate transparent window. There's no kernel driver of our own and no injection anywhere in the app, which is the design you want next to Vanguard, EAC, and BattlEye. If you specifically run Riot's anti-cheat, we wrote a dedicated piece on whether it's safe with Valorant.

The honest trade-off: an external overlay can't read engine-internal values an injecting tool can, like per-draw-call GPU timings. And because it counts the game's own presents, it reports the game's frame rate windowed, borderless or full screen, but only while the game's window is on screen: minimised, hidden or covered by another full-screen window, it shows a dash and the reason instead of a number. On Windows 10, and for emulators it doesn't measure yet, it shows the display's rate instead, labelled DISPLAY on the overlay, or DISPLAY CAP when it sits at your refresh rate. For judging smoothness — FPS, frametimes and 1% lows — the game's own frame rate is the number you want.

Reading your overlay while you play

Numbers are useless if you don't know what to do with them. Here's how to actually use the overlay mid-game.

Set a frametime target, not just an FPS target

Pick the frametime your monitor can show: 16.7 ms for 60 Hz, 6.9 ms for 144 Hz, 4.2 ms for 240 Hz. Your goal is for the frametime line to sit near that value and stay flat. A flat 8 ms line at 120 FPS feels better than a jittery line averaging 140.

Watch the spikes, not the average

When you feel a hitch, glance at the frametime graph. A single tall bar is a one-off stutter — often shader compilation the first time you see an effect, or a background process waking up. Repeated bars in the same spot are a consistent bottleneck worth fixing.

Correlate FPS with what's loaded

Pair the overlay with a look at CPU and GPU usage. If the GPU sits at 99% and FPS drops, you're GPU-bound — lower settings or resolution. If the GPU is at 70% while FPS tanks and the CPU is pinned, you're CPU-bound, and more graphics settings won't help. If temperatures climb and clocks fall as FPS sags, you're throttling, which is its own fix — monitoring temps to stop throttling covers it.

For the settings side — what to lower for the biggest FPS gain at the least visual cost — see FPS vs. quality settings. If your FPS is simply low across the board, start with how to increase FPS the honest way.

Overlay vs. in-game counters vs. driver counters

You have a few ways to see FPS. They're not equal.

SourceShows 1% lows / frametimes?Anti-cheat methodWorks across all games?
In-game FPS optionRarely — usually just average FPSNone (it's the game itself)No — only games that include one
Driver overlay (vendor software)SometimesUsually present-based; varies by versionMost games, vendor-dependent
Injecting third-party overlayYes, detailedHooks/injects — anti-cheat riskMost games, until anti-cheat blocks it
Present-event overlay (graphics kernel)Yes — FPS, frametimes, 1% lowsObserves only — no injectionNo per-game support needed; the game's own rate, windowed or full screen

The built-in counter some games ship is fine for a glance but almost never shows 1% lows. Vendor driver overlays are decent, and many now read present statistics safely, but coverage and detail depend on your GPU brand and driver version. An external present-frame overlay gives you FPS, frametimes and 1% lows with no per-game support and no injection. That combination is the reason to prefer it. One that counts the game's own presents, as BRUTAL's does on Windows 11, reads the game's frame rate windowed or full screen; one that counts the display's presents tracks your monitor's refresh rate in windowed or borderless mode.

Why the overlay belongs in the free tier

An FPS overlay is a diagnostic tool. You shouldn't have to pay to see whether your frames are smooth, and you definitely shouldn't have to risk your account to read a number.

BRUTAL Optimizer's overlay — FPS, frametimes, and 1% lows — sits in the free tier, alongside the live CPU/GPU/RAM/FPS monitor and 17 of the 22 optimization modules. The whole app is a user-mode wrapper over tools Windows already ships; there's no kernel driver of our own and no game injection anywhere in it, which is why the overlay never touches the game it measures. You can read more about that design on the no-kernel-driver safety page, or see how the free tier stacks up.

If you want the overlay plus an honest way to raise your numbers — no placebo "FPS boosters," no registry snake oil — the gaming optimizer is the place to start. Measure with the overlay, change one thing, and let the 1% low tell you the truth. That loop, done patiently, beats any miracle tweak you'll read about elsewhere.

Frequently asked questions

Can an FPS overlay get me banned?

An overlay that injects into the game or hooks its render calls can be flagged by kernel anti-cheat, blocked, or in the worst case risk your account. An overlay that only reads present counters Windows already publishes never touches the game: no injection, no hooks, no kernel driver of our own. That is the lower-risk design next to Vanguard, EAC and BattlEye, though each game's publisher decides what its anti-cheat allows.

What is a 1% low and why does it matter?

It summarises the slowest 1% of your frames. Some tools report the 99th-percentile frametime, the boundary of that slowest 1%; BRUTAL Optimizer's overlay reports their average, which is the stricter number. It exposes stutter that average FPS hides. A high average with a low 1% feels worse than a slightly lower average that stays consistent.

Is the BRUTAL Optimizer FPS overlay free?

Yes. The overlay with FPS, frametimes, and 1% lows is in the free tier, along with the live CPU/GPU/RAM/FPS monitor and 17 of the 22 optimization modules. There is no kernel driver of our own and no game injection anywhere in the app.

What is the difference between FPS and frametimes?

FPS counts how many frames render in a second, so it is an average. Frametime is how long each individual frame took in milliseconds. Frametimes reveal whether your frames arrive evenly, which is what smoothness actually depends on.

Which games does a present-frame overlay work in?

A present-frame overlay needs no support from the game itself, because it reads frame-present events Windows already publishes rather than relying on the game to provide a counter. BRUTAL's overlay shows a number for a game its Guardian service detects: a PC game it has a profile for, or a game in one of the six emulators it supports. On Windows 11, the FPS number is the game's own frame rate: BRUTAL counts the frames the game hands to Windows, from Windows' own graphics events, with no injection and no hooks. On Windows 10, and for emulators it doesn't measure yet, it shows the display's rate instead, labelled DISPLAY on the overlay, or DISPLAY CAP when it sits at your refresh rate; while the game is minimised or covered it shows a dash and says why. Of the emulators, GameLoop is measured; BlueStacks, LDPlayer, MuMu, Nox and MEmu show the display rate for now. It cannot read engine-internal values an injecting tool can, but for FPS, frametimes, and 1% lows that rarely matters.

Keep reading

Stop guessing. Measure it.

BRUTAL Optimizer is the honest gaming optimizer for Windows — 17 free modules, a real FPS overlay, verified disk cleanup and drive health. No kernel driver of our own, no game hooks, and per-module undo for the settings it changes.