u/Independent_Arg

Image 1 — A look at CapFrameX's recent development
Image 2 — A look at CapFrameX's recent development
Image 3 — A look at CapFrameX's recent development

A look at CapFrameX's recent development

I’ve been using CapFrameX since its early days, and watching its evolution over the years has been super impressive. In my view, the app's goal has always been to stay as user-friendly as possible without losing focus on the enthusiast/technical crowd :)

Lately, I’ve been using it for very specific tasks, as another tool to lean on when analyzing different NVIDIA driver versions for my posts on Reddit. Naturally, I stumbled across a few minor bugs in the current stable v1.8.6 release, but the developers squashed them within a matter of days, which really shows how active the project is.

Testing the build currently in development, I noticed a huge shift right away... So, here’s a breakdown of some of the changes headed to the next stable release (hopefully dropping soon):


The Overlay/OSD rewrite

This is where most of the commit volume lives, and it's not small stuff. The old overlay path leaned heavily on RTSS for rendering; this branch adds a proper in-game hook overlay with its own PresentMon graph mode, running semi-independently of RTSS's OSD pipeline.

Highlights:

  • DXGI injection backoff and hook-free fallback on foreign presenters - if another overlay (Discord, GeForce Experience, whatever) is already hooking the swapchain, CapFrameX now degrades gracefully instead of fighting for the hook or corrupting frame data.
  • Vulkan support path for the OSD, including a 32-bit Vulkan layer with per-bitness registration and detection logic that defers RTSS launch when a Vulkan title is running. There's also a stale Vulkan layer registration purge on install, which tells me they hit real-world cases of orphaned layers breaking injection on some systems.
  • Early hook injection and a dedicated hook overlay status entry, so you can actually see what injection path is active instead of guessing.
  • DX9 injection fallback with explicit fallback-status reporting.
  • Global hotkeys moved onto one dedicated hook thread, the audio output device now gets released after playback instead of held open, and RTSS launch no longer blocks the calling thread - three separate threading/resource-leak fixes clustered around the same late-July push.
  • Options tab overhaul: opacity setting, zoom/placement controls, and, as of the very last commit in the branch, an OSD position hotkey.
  • Under the hood: circular buffer bumped to 4096, hook metrics capacity raised to 256 entries, and a fix for corrupt captures caused by leaked frame stream subscriptions.

New sensors & monitoring

A solid batch of new telemetry, mostly vendor-specific latency and memory metrics that weren't there before:

  • AMD Anti-Lag status and AMD FLM (Frame Latency Meter) latency, including a passive click-to-screen mode and vendor-aware handling.
  • NVIDIA VRAM bandwidth and peak bandwidth calculation, plus NV memory controller usage and NVIDIA memory temps.
  • A new generic DataRate sensor type and a cross-vendor GPU memory allocation sensor - sounds like groundwork for unifying memory telemetry across AMD/NVIDIA/Intel instead of three separate code paths.
  • NVMe sensor error handling got hardened.
  • Arrow Lake NGU clock fix.
  • Animation Error P99 metric, opt-in.
  • PawnIO v2.2.0 (unlike v1.8.6, this build comes with a properly signed driver, so it won't get flagged as a security risk/false positive anymore).
  • PresentMon-2.5.1-x64.

UI/UX

This is a legit visual overhaul, not just a coat of paint:

  • Redesigned run history and capture panels as cards, with process panels on the capture tab following suit and aligned spacing between them.
  • Cloud view redesign, dropping the old UseGlobalCaptureTime toggle entirely.
  • Options popup redesigned and resized.
  • App-wide scrollbar restyle (rounded thumbs, matching arrows, symmetric short-thumb handling, someone clearly cared about the small stuff here).
  • Observed-directory drawer replaced with a breadcrumb + folder popup, which should fix the old behavior where the directory expander would squeeze the record list.
  • Brand palette and asset refresh, twice (they iterated on it), plus fixes for light theme charts and record save colors that had apparently drifted from the new palette.
  • New system info dashboard and a startup splash screen, with the info panel also picking up a device name field, a restyled info expander, a separated TBP option (split out from the generic custom-hardware-label field it was previously piggybacking on).
  • Chart-side: SeriesHighlightAnnotation for highlighting series on the Comparison tab, a fix for frametime chart/graph inconsistency, and a chart flickering mitigation pass.
  • Auto-update got some love too, expanded update support and documented update metadata, so the update path itself should be more reliable going forward.

None of this changes benchmarking methodology, but if you spend a lot of time in the Comparison and Run History tabs (which, if you're benchmarking seriously, you do), this is a real qof jump.

.NET 9 / Toolchain migration

  • Main app, test project, and the PmcReader plugin all migrated to net9.0-windows.
  • Dropped support for net472, net8.0, and netstandard2.0 targets, so if you're on some ancient .NET Framework dependency chain, that's gone.
  • Native projects switched to the v145 toolset, build moved to Visual Studio 2026.
  • Assorted cleanup: removed dead MonitoringLibTestApp and Webservice.Persistance projects, removed unused named-pipe IPC projects, removed an empty CXServicex86 scaffold, added missing XML docs and SupportedOSPlatform attributes to fix CA1416 warnings.
  • CI got touched too: several Jenkinsfile updates plus a new GitHub Actions CI pipeline added.

Bug fixes

  • Frametime chart/graph value inconsistency and duplicate frametime P1/P5 quantile parameters removed - both directly relevant if you're citing CapFrameX numbers in comparisons.
  • Adaptive FPS STDEV calculation fix.
  • Corrupt captures from leaked frame stream subscriptions.
  • GPU info reporting on iGPU/dGPU hybrid systems fixed, plus handling for a missing GameBar registry key (should help on clean Windows installs where GameBar was never touched).
  • Null pointer handling in the ADLX manager (AMD's telemetry library) - crash fix.
  • Various shell-open / Process.Start fixes that broke under .NET Core's changed defaults.
  • Deferred tab view registration and measuring the view model resolution at startup instead of eagerly loading everything.
  • Cached and parallelized static hardware info reads - previously this looks like it was serialized and blocking.
  • Main window reveal without waiting on the sensor service, and splash screen shown without blocking startup.
  • Reduced idle sensor and chart polling, plus a follow-up commit specifically titled "stop unnecessary background polling."
  • Optimized process polling, and the info tab now pauses its telemetry when the tab isn't visible instead of polling in the background for no reason.
u/Independent_Arg — 3 days ago
▲ 339 r/nvidia

NVIDIA 610.88 WHQL Driver – Performance Benchmark (RTX 3070)

Well, some of you already know me and know who I am, I don't think an introduction is needed.

I just wanted to let you know that for the first time in a LONG time, I've posted my full breakdown on the latest 610.88 driver with an Ampere GPU. This takes me tons of hours (even days sometimes). I usually just drop an early analysis, but this time I decided to go all out and retest some older drivers since Windows patches, game updates, and even drivers can change everything.


Hey all,

Here's an updated look at performance across several recent NVIDIA drivers, tested on an Ampere-based GPU (RTX 3070). As always: this is not a definitive review — every PC setup is different, treat it as a reference point, not gospel.

Is it worth updating your driver? The general rule says newer drivers bring bug fixes, security patches, and optimizations for the newest games. But "newer" doesn't automatically mean "better" — some updates introduce subtle stutter or frame pacing regressions that don't show up if you only look at average FPS. That's the main thing this round of testing tries to catch.

Special thanks to UL Solutions for the 3DMark press license used in these tests.


Test System

  • OS: Windows 11 Pro (v25H2, latest patches)
  • CPU: Intel Core i7-10700K (stock)
  • GPU: ASUS ROG Strix RTX 3070 OC (stock)
  • RAM: 64 GB DDR4-3200 (2x32 GB)
  • Storage: 1TB NVMe SSD
  • Display: 4K 60 Hz monitor (no HDR, no G-Sync)
  • Settings: HAGS off | ReBAR on | NVCP Global Defaults
  • Driver Install: Clean install (with control panel)

Benchmark Methodology

  • Benchmarks ran 4 times (first run discarded), then the remaining 3 valid runs merged into one aggregated result (outliers get automatically retested). Frame times recorded via PresentMon (integrated into CapFrameX). Outliers (>5% variance) are retested.
  • Alongside Average FPS, 1% Low and 0.1% Low, this round also tracks CapFrameX's Adaptive STDEV metric (labeled "Consistency" below) — it measures how much frame times wobble compared to a moving average. Lower = smoother frame delivery, even when the average FPS looks identical between two drivers.
  • Game settings: mostly Ultra, 4K or 1440p, no scaling.

> Quick legend, if these terms are new to you: > - Avg FPS — your average frame rate. > - 1% Low — the average of your worst 1% of frames. Better indicator of "does it feel smooth" than the average alone. > - 0.1% Low — same idea, but for your worst 0.1% of frames — basically your nastiest stutters. > - Consistency — lower is smoother. Two drivers can share the same average FPS and still feel very different to play if one has a much higher (worse) consistency score.


In-Game Benchmarks

> Important note: To eliminate discrepancies from recent Windows updates or game patches, older reference drivers (like 581.94 and 596.36) were completely re-tested under the exact same current environment alongside 610.88.

The Riftbreaker

DX12, Ultra preset, 2560x1440, Ray Tracing off, Screen Space Reflections High, Volumetric Lighting Ultra, Dynamic Vegetation Full

Driver Avg FPS 1% Low 0.1% Low Consistency
581.94 (stable) 154.8 141.9 124.1 13.0
596.36 (stable) 153.4 138.7 132.8 4.4
610.88 153.3 138.5 132.7 7.0

Average FPS remains identical across all drivers. The key factor is frame delivery. The older 581.94 driver exhibits the worst performance, dropping to 124.1 FPS in 0.1% Lows with a high Consistency score of 13.0. Moving to 596.36 drastically stabilizes frame pacing, dropping Consistency to 4.4 and raising 0.1% Lows to 132.8 FPS. Driver 610.88 maintains this improved baseline, offering no performance delta over 596.36.

Age of Empires II: Definitive Edition

Ultra preset, 3840x2160 fullscreen, 100% render scale

Driver Avg FPS 1% Low 0.1% Low Consistency
581.94 (stable) 60.0 44.1 35.2 5.8
596.36 (stable) 58.9 43.6 35.6 5.9
610.47 61.4 44.5 36.3 6.2
610.52 60.2 42.7 33.8 6.4
610.62 60.9 44.6 36.0 6.0
610.74 60.5 43.9 37.3 5.9
610.88 60.1 44.8 36.9 5.9

Performance across all seven tested drivers is completely flat. Average FPS stays within a tight 58.9 to 61.4 range, while 1% Lows, 0.1% Lows, and Consistency (5.8 to 6.4) show negligible variances that fall well within the margin of error. Driver updates provide no tangible impact on the gameplay experience here.

Age of Mythology: Retold

DX12, everything Ultra/Mythic (Texture Quality High, Texture Filtering 16x, Terrain Quality Mythic, Terrain Detail Quality Mythic, Water Quality Mythic, Foliage Quality Full, Shadow Quality Mythic, Dynamic Reflections SSR, Ambient Occlusion Quality SSAO, Effect Quality High, Dynamic Lights enabled, Physics Quality High), 3840x2160 fullscreen, FXAA

Driver Avg FPS 1% Low 0.1% Low Consistency
581.94 (stable) 49.3 36.6 33.8 2.5
596.36 (stable) 49.5 36.7 34 2.7
610.47 47.9 34.8 31.8 2.6
610.52 49.3 37.5 30.4 2.8
610.62 49.6 36.7 28.8 2.7
610.88 48.5 36.3 32.9 2.7

Average FPS and overall Consistency remain highly stable across all configurations. However, the early 610-series drivers introduced a regression in heavy stutters, with 0.1% Lows dropping from ~34 FPS down to a low of 28.8 FPS on driver 610.62. The new 610.88 driver corrects this trend, recovering 0.1% Lows back up to 32.9 FPS, nearly matching the stability of older branches.


Non-Synthetic Benchmark

Unigine Superposition

Direct3D11, 3840x2160 fullscreen, Custom preset, 4K Optimized shaders, High textures, Depth of Field off, Motion Blur off

Driver Avg FPS Score Min FPS Max FPS
596.36 94.63 12651 78.84 117.64
610.47 94.85 12681 79.28 117.75
610.62 94.45 12628 78.55 117.45
610.74 94.48 12632 79.04 117.06
610.88 94.87 12684 79.20 117.87

3DMark Benchmarks

Speed Way v1.1 (DX12 Ultimate, 1440p Native)

Driver Avg FPS Score Perf. Delta
596.36 35.72 3572 Baseline
610.47 35.80 3579 +0.20%
610.62 35.74 3574 +0.06%
610.74 35.69 3569 -0.08%
610.88 35.89 3588 +0.45%

Steel Nomad v1 (DX12, 4K Native)

Driver Avg FPS Score Perf. Delta
596.36 31.86 3186 Baseline
610.47 32.14 3214 +0.88%
610.62 32.10 3209 +0.72%
610.74 32.27 3227 +1.29%
610.88 32.32 3232 +1.44%

Steel Nomad v1 (Vulkan, 4K Native)

Driver Avg FPS Score Perf. Delta
596.36 35.36 3536 Baseline
610.47 35.59 3558 +0.62%
610.62 35.17 3517 -0.54%
610.74 35.51 3550 +0.40%
610.88 35.43 3542 +0.17%

Fire Strike v1.1 (DX11, 1080p Native)

Driver Score Perf. Delta
596.36 25235 Baseline
610.47 25585 +1.39%
610.62 25403 +0.67%
610.74 25511 +1.09%
610.88 25572 +1.34%

Most of these swings are under 1.5% - within typical run-to-run variance, so don't read too much into single-digit percentage moves here.


System Stability & Desktop Behavior

  • Hardware Acceleration (Browsers / Discord): Solid. Zero flickering, black screens, or visual anomalies detected after 30 minutes of mixed use (including 4K60 YouTube playback in Firefox with zero dropped frames and fluid page scrolling).
  • DPC Latency (LatencyMon): PASSED. (System remained perfectly in the green. The highest DPC routine execution time was a safe 653 µs from nvlddmkm.sys).

TL;DR

  • 610.88 keeps Riftbreaker's smoother 0.1% Low — but that improvement started with 596.36, not 610.88. If you're still on 581.94 or older, this is the upgrade you'll actually feel; already on 596.36? Nothing changes here.
  • AoE2 DE, AoM Retold, and Unigine Superposition are all driver-agnostic — every driver tested lands in a tight, unremarkable band.
  • 3DMark scores wobble by less than 1.5% — normal run-to-run noise, not a real trend.

If your games are already showing heavy stutter and you're on an older driver, 610.88 looks like a solid one to move to. If everything's already smooth for you, there's no urgent reason to jump.

reddit.com
u/Independent_Arg — 18 days ago