Releases: CXWorld/CapFrameX
Release list
CapFrameX v1.9.2 Beta
CapFrameX v1.9.2 Beta
This beta prioritizes critical PresentMon capture and tracking fixes after several users reported increasing CPU usage, frametime spikes, and stalled capture output. It also includes localization, overlay, and installer improvements since 1.9.1.
Correction to our earlier X post: Disabling PC Latency in the CapFrameX settings does not resolve this PresentMon problem. Our earlier post on X incorrectly suggested it as a workaround. Application-timing tracking remains active independently of the PC Latency setting, so stale tracking data can still accumulate. The fix is included in CX-PresentMon 2.6.1, bundled with this beta.
Important information for reviewers: Do not use the CapFrameX hook-free overlay for benchmark measurements. Hiding this overlay can cause frametime spikes, and some AMD and Intel driver versions can have problems with Windows Desktop Window Manager (DWM). Use a suitable in-game or RTSS overlay and check which renderer is actually active before measuring, including any automatic fallback to hook-free. These overlay limitations are separate from the PresentMon fixes below.
Downloads and requirements
| Package | Use |
|---|---|
| Installer | Extract the ZIP and run CapFrameXBootstrapper.exe. |
| Portable | Extract into a new folder and run CapFrameX.exe. Keep portable.json beside the executable. |
| SHA-256 checksums | Verify both ZIP downloads. |
- Application version: 1.9.2.0-beta. This is a prerelease; v1.9.1 remains the stable release.
- Runtime: .NET 10 Desktop Runtime (x64) is required for both packages. The plain .NET Runtime is not sufficient.
- Portable installations also require the Microsoft Visual C++ 2015–2022 Redistributables for the native components. Setup handles the redistributables for installer users.
- The packages include signed application and dependency binaries, the x64/x86 in-game overlay components, and BENCHLAB Service 2.4.0.
PresentMon: critical stability fixes
CapFrameX now bundles CX-PresentMon 2.6.1, our maintained build based on Intel PresentMon 2.6.0. This is a CapFrameX build, not an official Intel PresentMon 2.6.1 release. The CSV layout remains compatible with Intel PresentMon 2.6.0.
- Bound stale application-timing tracking. In affected games, timing events without matching present events could accumulate for the lifetime of the process. Repeatedly scanning these entries could increase CPU usage and memory use and introduce frametime spikes. Stale entries are now removed.
- Recover capture output after frame-generation changes. A present waiting for a frame ID could block subsequent output when frame-type events stopped, for example after disabling or replacing frame generation. The stale-present check now also releases this wait instead of leaving output blocked until the completed-present buffer fills.
- Harden GPU queue and presentation tracking. Additional changes bound retained HAGS hardware-queue tracking, clean up stopped queues, prevent duplicate DWM present queuing, and improve swap-chain/process tracking. These are additional robustness changes; they are not presented as the confirmed cause of every reported issue.
See Intel PresentMon issue #695 for the reported failures and the CX-PresentMon source for the fixes. The beta ships source revision 8e2d21ef90fae171d840c9c9f4136340f7288547.
Overlay and interface
- The CapFrameX in-game overlay is now the default for new configurations. Existing renderer selections are preserved.
- Removed the experimental label and availability switch for the in-game renderer.
- Improved overlay-item column sizing, capture status wrapping, tab alignment, and dialog button sizing.
- Fixed record-list column behavior while scrolling and disabled formatting actions when no overlay entry is selected.
Localization
- Added German, Russian, and Spanish translations.
- Improved language switching across the Info tab, charts, dropdowns, and sensor views.
- Corrected translated overlay labels while preserving game names, units, and internal API identifiers.
Installer and packaging
- Migrated the installer to WiX Toolset 6.0.2 and refreshed its layout and import hint.
- Preserve autostart configuration during repair and upgrades; remove it during a full uninstall.
- Avoid unnecessary Visual C++ redistributable repairs when repairing CapFrameX.
- Retain the complete signing checks introduced for 1.9.1.5, including managed dependencies, resource assemblies, and installer custom-action dependencies.
- Register x64 and x86 Vulkan layers in their respective HKLM registry views. Portable packages do not register Vulkan layers automatically.
Beta feedback
Please report remaining capture interruptions, growing background CPU usage, or frame-generation transition problems with the game, GPU, driver version, active overlay renderer, and relevant logs. Hardware- and driver-specific behavior still needs feedback from a wider range of systems.
Full changelog: v1.9.1.5...v1.9.2_beta
CapFrameX v1.9.1
CapFrameX 1.9.1 restores the experimental in-game overlay with signed binaries, brings back the bundled BENCHLAB service, and improves overlay compatibility, hardware information, and capture workflows. This is a stable release; the in-game renderer remains experimental.
Downloads and requirements
| Package | Installation |
|---|---|
release_1.9.1_installer.zip |
Extract and run CapFrameXBootstrapper.exe. Setup installs CapFrameX and registers the x64 and x86 Vulkan layers in their matching HKLM registry views. |
release_1.9.1_portable.zip |
Extract the complete archive and run CapFrameX.exe. Keep the included portable.json for an isolated portable configuration. Vulkan integration requires separate layer registration. |
Install the .NET 10 Desktop Runtime (x64) first. Another .NET major version, the plain .NET Runtime, or the legacy .NET Framework does not replace this requirement. Portable installations also require the Visual C++ x64 runtime; see Portable Mode.
The internal application version is 1.9.1.5, with the release channel. CapFrameX binaries, native overlay components, BENCHLAB, and setup carry the CapFrameX publisher's Certum code-signing certificate with SHA-256 timestamps. Original vendor signatures are preserved. Package hashes are supplied in SHA256SUMS.txt.
VirusTotal scan (original build 1.9.1.4): release_1.9.1_portable.zip
Close CapFrameX and games before updating. Portable users should extract into a new folder, then copy their previous Portable data folder and customized portable.json.
Revised v1.9.1 packages (build 1.9.1.5)
The packages have been rebuilt to correct the missing Authenticode signature on LiveCharts.Wpf.dll reported in #451. All packaged Windows DLLs, including managed dependencies and satellite resources, now have valid Authenticode signatures. Installer custom-action dependencies are signed before embedding. Existing valid vendor signatures are preserved.
The release verification now rejects any unsigned or invalidly signed packaged binary. Package hashes in SHA256SUMS.txt have been updated; the VirusTotal link above refers to the original build. This addresses the unsigned-component cause of the Smart App Control report; verification on the reporter's SAC-enabled system is still pending.
Update using the revised installer, or extract the revised portable archive into a new folder and copy your previous Portable data folder and customized portable.json. Source for this packaging revision: v1.9.1.5.
Overlay and OSD
- Restored CapFrameX in-game (Experimental) for DirectX 11, DirectX 12, and Vulkan titles, including signed x64 and x86 hook and layer DLLs. If the in-game renderer cannot be used, the hook-free overlay takes over. Hook-free and RTSS renderers remain available.
- Automatic compatibility probing with per-game learned profiles, revalidated when conditions change, and recovery after frame-generation changes during a session, including FSR and XeSS routing. Some compatibility changes require restarting the game.
- Smoother in-game frametime charts, sharper antialiased lines, and corrected frame cadence under frame generation. The FPS graph now works without the frametime graph and can be toggled live.
- Improved column layout in the Overlay tab: OSD options arrange in three columns, wrapping to two in narrower windows, and the overlay item grid shows all columns without horizontal scrolling.
- Overlay toggles in the Overlay tab and status bar, per-entry text sizes, and an OSD log-folder shortcut.
- The hook-free overlay shows only while a capture process is detected, is placed on the selected monitor regardless of the taskbar, and averages its metrics at each refresh.
- The remote OSD API (
/api/osd,/ws/osd) keeps updating while the overlay is switched off. - Fixed template apply/revert, profile switching, and the save button.
- Share overlay compatibility reports (Overlay → OSD options) is off by default and requires explicit consent. Reports use a random participant ID and exclude full paths, account details, and raw logs; turning sharing off deletes unsent reports. Extended diagnostics remain opt-in; native overlay logging overhead is reduced.
Sensors and system information
- Bundled BENCHLAB Service 2.4.0, rebuilt as a signed, self-contained .NET 10 executable that needs no separate ASP.NET runtime. Compatible separately installed services remain supported; fixed null sensor readings.
- Updated Intel IGCL v298 and AMD ADLX 2.0, with expanded Intel telemetry, fan and PSU readings, and AMD SmartShift monitoring.
- The Info dashboard shows software components (PawnIO, PresentMon, RTSS, Vulkan layer) and platform security (Secure Boot, test signing, VBS, memory integrity), and adds Copy system info. The log explains when Windows code integrity blocks the PawnIO driver.
- Corrected Intel Alder/Raptor Lake memory gear decoding and kept per-core overlay entries consistent across CPU changes.
- Removed the AMD FLM click-to-photon latency feature with its settings, sensors, and overlay entries.
Capture, interface, and reliability
- Updated to PresentMon 2.6.0 and added stored display-layer metadata to captures.
- Restored per-game capture durations (Global or This game), added persistent hotkey disabling, and preserved additional analysis graph selections. The capture file mode moved to the Options tab.
- Fixed dragging multiple records into aggregation, comparison, cloud, and report views, modern .NET autostart registration, and update confirmation/relaunch behavior.
- Improved layouts and clipping across tabs; every tab now fits a maximized 1080p window. The minimum/default main-window size is now 1488 × 768.
- Completed the .NET 10 migration of the remaining projects and managed OSD components.
- Removed unused AvalonDock files and empty localization folders from packages.
Full changelog: v1.9.0...v1.9.1
CapFrameX v1.9.1 beta
Release Notes
Pre-release — v1.9.1 Beta (build 1.9.1.2). This beta focuses on our new Certum code-signing certificate and the CapFrameX in-game overlay, including automatic compatibility learning and optional sharing of compatibility reports to improve game profiles. Please help us test installation, overlay behavior, and compatibility across different games and graphics APIs.
Enhancements & New Features
- Certum code signing. The application, CapFrameX components, native OSD DLLs, bundled BENCHLAB service, and installer are now signed with our code-signing certificate and SHA-256 timestamps.
- In-game overlay available again. Select CapFrameX in-game (Experimental) under Overlay → OSD options to use the built-in overlay with DirectX 11, DirectX 12, and Vulkan. Native overlay components are included for both 64-bit and 32-bit games. RTSS remains available as a separate renderer.
- Automatic game compatibility profiles. CapFrameX probes overlay compatibility, remembers working settings for each game, and revalidates profiles when relevant conditions change. If the in-game renderer cannot be used, it can temporarily fall back to the hook-free overlay. Some compatibility changes require restarting the game.
- Improved frame-generation handling. Better compatibility probing and overlay recovery when frame generation is enabled, disabled, or changed during a game session.
- Per-game capture durations. Choose Global or This game below the capture-time field. Saved game-specific durations are restored automatically.
Shared Overlay Compatibility Profiles
Help us improve shared game profiles by enabling Share overlay compatibility reports under Overlay → OSD options. Sharing is off by default. Local compatibility learning works independently of this setting.
When enabled, CapFrameX sends compatibility results from future game sessions for analysis. Reports include the selected profile, overlay and frame-generation diagnostics, game/runtime versions and hashes, and Windows/GPU/driver information. This evidence helps us identify working configurations and improve profiles for future releases.
Reports use a random participant ID and exclude full file paths, account details, and raw logs. Turning sharing off stops uploads and deletes unsent reports; reports already submitted remain available for analysis.
Bugfixes
- Fixed the overlay FPS graph when enabled independently of the frametime graph, including live graph toggling.
- Fixed hook-free overlay placement on the selected monitor, independent of taskbar position and size.
- Fixed hotkeys becoming active again after being cleared; disabled hotkeys now remain disabled after restarting CapFrameX.
- Fixed additional analysis-graph selections not being restored after an application restart.
- Fixed dragging multiple records into aggregation, comparison, cloud, and report views.
- Fixed Windows autostart registration and Intel Alder/Raptor Lake memory-gear reporting.
Platform & Infrastructure
- Completed the .NET 10 migration across the remaining application projects and managed OSD components.
- Restored the bundled BENCHLAB Service, updated to 2.4.0. Its signed executable includes its .NET/ASP.NET runtime, so no separate ASP.NET runtime installation is needed for the service.
- Reduced native overlay logging overhead and improved handling of repetitive frame-generation diagnostics.
- Removed the experimental AMD FLM click-to-photon latency feature and its associated settings, sensors, and overlay entries.
Downloads & Runtime Requirements
Install the .NET 10 Desktop Runtime (x64) before running CapFrameX.
| Package | Instructions |
|---|---|
CapFrameX_1.9.1.2_Beta_Installer.zip |
Extract and run CapFrameX_1.9.1.2_Beta_Setup.exe. Recommended for testing the in-game overlay, especially Vulkan. |
CapFrameX_1.9.1.2_Beta_Portable.zip |
Extract into a new folder and run CapFrameX.exe. Keep the included portable.json for portable settings and data. |
VirusTotal scan: CapFrameX_1.9.1.2_Beta_Portable.zip
Close CapFrameX and games before updating. Vulkan requires layer registration by the installer; extracting the portable archive does not register it.
Beta Testing & Feedback
- Check installation and updates, including the publisher shown by Windows. Report unexpected security detections or signature warnings with the affected filename and exact message.
- Test the in-game overlay in DirectX 11, DirectX 12, and Vulkan games, including frame-generation switches, resolution changes, and overlay visibility.
- Enable compatibility-report sharing if you would like to contribute. When reporting an issue, include the game/version, graphics API, GPU/driver, frame-generation settings, and steps to reproduce it.
The in-game overlay remains experimental. Game-specific feedback is especially valuable during this beta.
Full changelog: v1.9.0 → v1.9.1_beta
CapFrameX v1.9.0
CapFrameX 1.9.0 brings a refreshed interface, built-in overlays, expanded hardware telemetry, and reduced background overhead. This is a stable release. The CapFrameX in-game overlay is unavailable in this release and will be delivered in a later update once our code-signing certificate is available.
Downloads and requirements
| Package | Installation |
|---|---|
release_1.9.0_installer.zip |
Extract and run CapFrameXBootstrapper.exe. Setup installs CapFrameX and removes obsolete CapFrameX Vulkan layer registrations. |
release_1.9.0_portable.zip |
Extract the complete archive and run CapFrameX.exe. Keep the included portable.json to use an isolated portable configuration. |
Install the .NET 10 Desktop Runtime (x64) first. The application now targets .NET 10. Another .NET major version, the plain .NET Runtime, or the legacy .NET Framework does not replace this requirement. Setup checks for the Desktop Runtime before installation; the portable application host checks it before startup.
The internal application version is 1.9.0.8, with the release channel. SHA-256 package hashes are supplied in SHA256SUMS.txt. See Portable Mode for portable runtime requirements and configuration.
Overlay and OSD
- Built-in CapFrameX hook-free renderer, the default for new configurations, with an output-display picker and adjustable chart refresh rate. RTSS remains available as a separate renderer.
- CapFrameX in-game (Experimental) is disabled with a notice about delivery after our code-signing certificate is available. The managed injector, DirectX hook DLLs, and Vulkan layer DLLs/manifests are excluded from these packages.
- Earlier in-game renderer selections migrate to hook-free; existing hook-free and RTSS selections are preserved.
- Opacity, zoom, placement, an OSD position hotkey, and PresentMon replay buffering for the hook-free renderer.
- Extended native-renderer logging is opt-in and persists across restarts. Reduced routine logging and improved UI responsiveness.
Revised v1.9.0 packages
The downloads have been replaced with application build 1.9.0.8 following the Defender report in #430. This revision omits the in-game overlay components and the bundled BENCHLAB service. Package hashes have been updated in SHA256SUMS.txt.
Portable users: extract this revision into a new folder. You can then copy your previous Portable data folder and customized portable.json. Overwriting the old application folder can leave removed binaries behind.
Installer users: run the revised setup to update the application and remove the previous package's in-game components and Vulkan registrations. Close CapFrameX and games before updating.
BENCHLAB remains supported when a compatible service has been installed separately. CapFrameX detects an existing service and can start it for monitoring. It no longer includes or falls back to its own service executable, and independently running services are left running when CapFrameX closes.
Sensors and monitoring
- AMD Anti-Lag status and Frame Latency Meter (FLM) integration, including passive click-to-screen measurement and vendor-aware handling.
- NVIDIA memory temperatures, memory-controller utilization, and estimated VRAM bandwidth; additional fallback handling for NVIDIA power readings.
- GPU memory allocation telemetry across vendors and support for data-rate sensor readings.
- More reliable AMD GPU detection, hybrid iGPU/dGPU information, and ADLX error handling.
- Hardened NVMe error and shutdown handling, plus Intel Arrow Lake fabric-clock corrections.
- Updated signed PawnIO driver package and PresentMon 2.5.1.
Interface and performance
- Refreshed branding, tab layouts, colors, scrollbars, toggle controls, and options dialogs.
- Redesigned capture controls, process panels, run history, and cloud sharing.
- New system information dashboard and startup splash screen.
- Folder breadcrumb and popup navigation for capture directories.
- Comparison-series highlighting and fixes for legends, chart flicker, and light-theme rendering.
- Faster startup through deferred view loading and cached hardware information. Reduced idle sensor, chart, and process polling; hidden views pause unnecessary telemetry updates.
- More responsive global hotkeys, non-blocking RTSS launch, and audio-device cleanup after playback.
Capture, analysis, and platform
- Fixed corrupt captures caused by leaked frame-stream subscriptions, frametime graph inconsistencies, and adaptive FPS standard-deviation calculation.
- Removed duplicate frametime percentile options; Animation Error P99 is opt-in.
- Improved update handling and runtime-dependency detection.
- Migrated the application and tests to .NET 10, with Visual Studio 2026 and updated dependencies.
Thanks to Independent_Arg for the community overview of recent development, which helped organize these notes. The summary has been checked against the release branch and updated for the changes since that post, including the .NET 10 migration.
Full changelog: v1.8.6...v1.9.0
CapFrameX v1.8.7 beta
Update 2026/06/21
- Game resolution info overlay item
- Game resolution info capture file
Release Notes
⚠️ Pre-release — v1.8.7 Beta. This is a preview build focused on PMC Reader Plugin reliability and overlay frametime accuracy. Please report any issues so they can be addressed before the final v1.8.7 release.
Enhancements & New Features
- Reworked WinRing0 kernel driver management for the PMC Reader Plugin. CapFrameX now bundles the WinRing0 driver and manages its full lifecycle automatically — extracting and installing the bundled
CapFrameX_WinRing0x64.sys, reusing an already-running WinRing0 service, reclaiming a stale CapFrameX driver registration and retrying, and optionally using a user-provided driver. This makes low-level PMC/MSR access considerably more robust across different system configurations. - PMC Reader Plugin diagnostics logging is now routed into the CapFrameX application log. Driver extract/install/open/reclaim steps and MSR access failures are reported with actionable messages (e.g. service not installed / disabled / marked for deletion, missing
.sysfile, driver signature or image-hash rejection, or blocking by Memory Integrity / HVCI / the vulnerable-driver blocklist), making it far easier to understand why PMC sensors show no data.
Bugfixes
- PMC Reader Plugin failed to load from downloaded builds. When
CapFrameX.PmcReader.Plugin.dllwas extracted from a downloaded zip or installer, Windows tagged it with the "Mark of the Web" and .NET'sAssembly.LoadFromrefused to load it (NotSupportedException, HRESULT0x80131515). The plugin is now loaded withAssembly.UnsafeLoadFrom, so it works without having to manually unblock the file. - Intel "WriteMsr IOCTL FAILED". Fixed a PMC Reader failure when writing performance-counter MSRs on Intel CPUs.
- Overlay frametime value/graph inconsistency. The overlay frametime text and the frametime value shown next to the frametime graph are now consistent with the displayed FPS value. The frametime is derived from the same windowed framerate (
1000 / FPS) instead of the last single-frame sample, so the number, the graph label, and the FPS reading agree. (GitHub issue #394)
Platform & Infrastructure
- WinRing0 driver lifecycle hardening (extract / install / open / reclaim / cleanup) in the PMC Reader Plugin, with richer failure diagnostics surfaced in the application log.
Runtime Requirements
- .NET 9 is required for full feature support and optimal stability. Download here.
MCP Server: Setting up Claude Code communication
CapFrameX ships an in-process Model Context Protocol server hosted by CapFrameX.exe. Once registered with Claude Code, the assistant can read captures, compute statistics, query the live system, and diagnose capture issues. Since v1.8.6, the assistant can also control captures (start/stop) and modify the configuration (AppSettings, overlay entries, logged sensors) via dedicated tools. The endpoint exists only while CapFrameX is running.
Setup
-
Find the port. Open
%appdata%/CapFrameX/Configuration/AppSettings.jsonand readWebservicePort(default1337; CapFrameX falls back to a free port if it's taken). -
Register with Claude Code (one-time, user-scoped):
claude mcp add -s user capframex --transport http http://localhost:<port>/mcp
-
Verify:
claude mcp list
Expected:
capframex: http://localhost:<port>/mcp (HTTP) - ✓ Connected
In an active session, /mcp shows live status and the CapFrameX tools become available to the model.
Troubleshooting
- Disconnected / connect failure — CapFrameX isn't running, or the port changed since you registered. Re-check
WebservicePort, then:claude mcp remove capframex claude mcp add -s user capframex --transport http http://localhost:<new-port>/mcp
- Tools missing in the model — start a new Claude Code session; existing sessions don't pick up newly added servers.
- Disable entirely — set
McpEnabledtofalseinAppSettings.jsonand restart CapFrameX.
Note: the tool set is no longer read-only — it includes capture control and configuration write tools. The endpoint binds to localhost without auth.
CapFrameX PMC Reader Plugin
The PMC Reader Plugin extends CapFrameX with low-level CPU performance monitoring counters (PMC) by reading Model Specific Registers (MSRs) directly. It exposes CPU cache and memory metrics — such as L3 cache hit rates, DRAM bandwidth, and DRAM latency — that are not accessible through standard OS APIs.
New in v1.8.7 Beta: the WinRing0 kernel driver management has been reworked for greater reliability, the plugin now loads even when Windows marks the downloaded DLL as blocked (no manual "Unblock" needed), and driver/MSR diagnostics are written to the CapFrameX application log to make troubleshooting easier.
Note — who this is for: This is not an everyday tool for typical users. Reading raw CPU performance counters requires a kernel driver, a willingness to adjust Windows security settings, and an understanding of what the metrics actually mean. The plugin is aimed at technically inclined enthusiasts and hardware reviewers who need cache- and memory-level insight — for example to analyze gaming performance, compare CPU architectures, or investigate memory bottlenecks. If you just want frame-time capture, you don't need this plugin.
Supported CPUs
| Vendor | Architecture |
|---|---|
| AMD | Zen 4, Zen 5 |
| Intel | Alder Lake, Raptor Lake (Refresh), Arrow Lake |
Sensors
Base Sensors (all supported CPUs)
| Sensor | Unit | Description |
|---|---|---|
| CPU L3 Hit Rate | % | Overall L3 cache hit rate |
| CPU DRAM Bandwidth | GiB/s | Total DRAM read + write bandwidth |
| CPU DRAM Latency | ns | DRAM access latency |
Per-CCX Sensors (AMD multi-CCX CPUs)
| Sensor | Unit | Description |
|---|---|---|
| CPU L3 Hit Rate CCX {i} | % | L3 cache hit rate per CCX |
| CPU DRAM Latency CCX {i} | ns | DRAM access latency per CCX |
Gaming Sensors — P-Cores (Intel hybrid CPUs)
| Sensor | Unit | Description |
|---|---|---|
| CPU P-Core IPC | ratio | Instructions per clock |
| CPU P-Core L3 Hitrate | % | L3 cache hit rate |
| CPU P-Core L3 Bound | % | Cycles stalled on L3 |
| CPU P-Core Mem Bound | % | Cycles stalled on memory |
| CPU P-Core L3 Miss BW | GiB/s | L3 miss bandwidth |
Gaming Sensors — E-Cores (Intel hybrid CPUs)
| Sensor | Unit | Description |
|---|---|---|
| CPU E-Core IPC | ratio | Instructions per clock |
| CPU E-Core L3 Hitrate | % | L3 cache hit rate |
| CPU E-Core L3 Bound | % | Cycles stalled on L3 |
| CPU E-Core Mem Bound | % | Cycles stalled on memory |
| CPU E-Core L3 Miss BW | GiB/s | L3 miss bandwidth |
Installation
- Download
CapFrameX.PmcReader.Plugin.dllfrom the release assets - Copy the DLL into your CapFrameX installation folder
Default path:C:\Program Files (x86)\CapFrameX - Restart CapFrameX — the plugin sensors will appear automatically
As of v1.8.7 Beta you no longer need to right-click the DLL and choose Unblock — CapFrameX loads it even when Windows marks it as downloaded.
⚠️ Important
This plugin uses the WinRing0 kernel driver to access CPU MSRs. WinRing0 is blacklisted by Microsoft Windows Defender and may be flagged or blocked.
In the worst case, you may need to disable Windows Defender real-time protection for the kernel driver to work properly.
Use this plugin at your own risk.
Checklist — Getting WinRing0 to Actually Read the MSRs
Symptom: the plugin loads and the sensors appear, but they show no data, zeros, or frozen/constant values.
This almost always means the WinRing0 driver itself loaded successfully, but a hypervisor is intercepting and blocking the writes to the performance-counter MSRs at runtime. Work through this checklist before reporting a bug:
-
Disable virtualization-based security / hypervisor features (prime suspect).
All of the following arm the Hyper-V hypervisor, which controls the PMU and intercepts writes to performance-counter MSRs. Turn off whichever you have enabled:- VBS (Virtualization-Based Security)
- Core Isolation → Memory Integrity (HVCI)
- Hyper-V
- WSL2
- Virtual Machine Platform
- Windows Sandbox
This is different from "HVCI blocking the driver from loading" — the driver does load, but the hypervisor forbids the MSR write at runtime.
-
Close hypervisor-based kernel anti-cheat.
Kernel anti-cheat that runs its own hypervisor (e.g. Riot Vanguardvgk.sys, some EAC/Faceit setups) traps MSR accesses the same way. Fully exit it — note that some anti-cheat drivers load at boot and require a reboot after being disabled. -
(Rare) Check BIOS/firmware.
Some BIOS/firmware can disable the performance counters entirely. Make sure no relevant counter/monitoring option is turned off.
Tip: Changes to VBS / Memory Integrity / Virtual Machine Platform only take effect after a reboot, so restart Windows before re-testing.
CapFrameX Portable Mode
CapFrameX supports a portable mode that allows the application to run entirely from a single folder without writing to system directories. This is useful for running from USB drives, network shares, or keeping multiple isolated installations.
Portable mode is activated by placing a portable.json file in the same directory as the CapFrameX executable. See the v1.8.5 release notes for t...
CapFrameX v1.8.6
Release Notes
Enhancements & New Features
- New Animation Error metrics (Average, P99) in Analysis and Report views, including a new animation error chart. The PresentMon parameters
--track_frame_typeand--track_app_timingare used to improve the accuracy of the Animation Error. - New frametime percentile parameters (P1/P5 frametime quantiles)
- Intel fabric clock sensors (e.g. NGU/D2D clocks on Arrow Lake) based on a new IntelOOBMSM PawnIO module
- New Intel PawnIO wrapper (MSR, OC mailbox) with updated Intel MSR IDs
- Zen 6 standard path support, experimental Ryzen SMU support
- Prefer total/board power sensors over Intel's core-only "GPU TDP"
- Expanded MCP server tool set:
- Capture lifecycle tools: list capture-eligible processes, start/stop captures, wait for capture completion
- Configuration tools: read/write AppSettings, read/write overlay slot configurations, toggle single overlay entries, select logged sensors, edit record comments
- Frametime tools: frametime time series with downsampling, stutter/spike detection
- PMD tools: per-channel power summaries and time series (GPU/CPU/system power)
- Sensor analysis and cross-record analysis tools
- ETW buffer health status tool
- Frame generation awareness in metrics and comparison tools
Bugfixes
- Fixed animation error chart rendering
- App start freeze handling (ETW service health check, PawnIO initialization)
- Zen 6 core clock handling
- More robust handling of invalid PresentMon output lines
- Comparison tab variances chart corner radius
Platform & Infrastructure
- PawnIO module updates (IntelMSR, RyzenSMU, LpcIO, SMBus modules), added new IntelOOBMSM module
Runtime Requirements
- .NET 9 is now required for full feature support and optimal stability. Download here.
MCP Server: Setting up Claude Code communication
CapFrameX ships an in-process Model Context Protocol server hosted by CapFrameX.exe. Once registered with Claude Code, the assistant can read captures, compute statistics, query the live system, and diagnose capture issues. Starting with v1.8.6, the assistant can also control captures (start/stop) and modify the configuration (AppSettings, overlay entries, logged sensors) via dedicated tools. The endpoint exists only while CapFrameX is running.
Setup
-
Find the port. Open
%appdata%/CapFrameX/Configuration/AppSettings.jsonand readWebservicePort(default1337; CapFrameX falls back to a free port if it's taken). -
Register with Claude Code (one-time, user-scoped):
claude mcp add -s user capframex --transport http http://localhost:<port>/mcp
-
Verify:
claude mcp list
Expected:
capframex: http://localhost:<port>/mcp (HTTP) - ✓ Connected
In an active session, /mcp shows live status and the CapFrameX tools become available to the model.
Troubleshooting
- Disconnected / connect failure — CapFrameX isn't running, or the port changed since you registered. Re-check
WebservicePort, then:claude mcp remove capframex claude mcp add -s user capframex --transport http http://localhost:<new-port>/mcp
- Tools missing in the model — start a new Claude Code session; existing sessions don't pick up newly added servers.
- Disable entirely — set
McpEnabledtofalseinAppSettings.jsonand restart CapFrameX.
Note: unlike v1.8.5, the v1.8.6 tool set is no longer read-only — it includes capture control and configuration write tools. The endpoint binds to localhost without auth.
CapFrameX PMC Reader Plugin
The PMC Reader Plugin extends CapFrameX with low-level CPU performance monitoring counters (PMC) by reading Model Specific Registers (MSRs) directly. It exposes CPU cache and memory metrics — such as L3 cache hit rates, DRAM bandwidth, and DRAM latency — that are not accessible through standard OS APIs.
Note — who this is for: This is not an everyday tool for typical users. Reading raw CPU performance counters requires a kernel driver, a willingness to adjust Windows security settings, and an understanding of what the metrics actually mean. The plugin is aimed at technically inclined enthusiasts and hardware reviewers who need cache- and memory-level insight — for example to analyze gaming performance, compare CPU architectures, or investigate memory bottlenecks. If you just want frame-time capture, you don't need this plugin.
Supported CPUs
| Vendor | Architecture |
|---|---|
| AMD | Zen 4, Zen 5 |
| Intel | Alder Lake, Raptor Lake (Refresh), Arrow Lake |
Sensors
Base Sensors (all supported CPUs)
| Sensor | Unit | Description |
|---|---|---|
| CPU L3 Hit Rate | % | Overall L3 cache hit rate |
| CPU DRAM Bandwidth | GiB/s | Total DRAM read + write bandwidth |
| CPU DRAM Latency | ns | DRAM access latency |
Per-CCX Sensors (AMD multi-CCX CPUs)
| Sensor | Unit | Description |
|---|---|---|
| CPU L3 Hit Rate CCX {i} | % | L3 cache hit rate per CCX |
| CPU DRAM Latency CCX {i} | ns | DRAM access latency per CCX |
Gaming Sensors — P-Cores (Intel hybrid CPUs)
| Sensor | Unit | Description |
|---|---|---|
| CPU P-Core IPC | ratio | Instructions per clock |
| CPU P-Core L3 Hitrate | % | L3 cache hit rate |
| CPU P-Core L3 Bound | % | Cycles stalled on L3 |
| CPU P-Core Mem Bound | % | Cycles stalled on memory |
| CPU P-Core L3 Miss BW | GiB/s | L3 miss bandwidth |
Gaming Sensors — E-Cores (Intel hybrid CPUs)
| Sensor | Unit | Description |
|---|---|---|
| CPU E-Core IPC | ratio | Instructions per clock |
| CPU E-Core L3 Hitrate | % | L3 cache hit rate |
| CPU E-Core L3 Bound | % | Cycles stalled on L3 |
| CPU E-Core Mem Bound | % | Cycles stalled on memory |
| CPU E-Core L3 Miss BW | GiB/s | L3 miss bandwidth |
Installation
- Download
CapFrameX.PmcReader.Plugin.dllfrom the release assets - Copy the DLL into your CapFrameX installation folder
Default path:C:\Program Files (x86)\CapFrameX - Restart CapFrameX — the plugin sensors will appear automatically
⚠️ Important
This plugin uses the WinRing0 kernel driver to access CPU MSRs. WinRing0 is blacklisted by Microsoft Windows Defender and may be flagged or blocked.
In the worst case, you may need to disable Windows Defender real-time protection for the kernel driver to work properly.
Use this plugin at your own risk.
Checklist — Getting WinRing0 to Actually Read the MSRs
Symptom: the plugin loads and the sensors appear, but they show no data, zeros, or frozen/constant values.
This almost always means the WinRing0 driver itself loaded successfully, but a hypervisor is intercepting and blocking the writes to the performance-counter MSRs at runtime. Work through this checklist before reporting a bug:
-
Disable virtualization-based security / hypervisor features (prime suspect).
All of the following arm the Hyper-V hypervisor, which controls the PMU and intercepts writes to performance-counter MSRs. Turn off whichever you have enabled:- VBS (Virtualization-Based Security)
- Core Isolation → Memory Integrity (HVCI)
- Hyper-V
- WSL2
- Virtual Machine Platform
- Windows Sandbox
This is different from "HVCI blocking the driver from loading" — the driver does load, but the hypervisor forbids the MSR write at runtime.
-
Close hypervisor-based kernel anti-cheat.
Kernel anti-cheat that runs its own hypervisor (e.g. Riot Vanguardvgk.sys, some EAC/Faceit setups) traps MSR accesses the same way. Fully exit it — note that some anti-cheat drivers load at boot and require a reboot after being disabled. -
(Rare) Check BIOS/firmware.
Some BIOS/firmware can disable the performance counters entirely. Make sure no relevant counter/monitoring option is turned off.
Tip: Changes to VBS / Memory Integrity / Virtual Machine Platform only take effect after a reboot, so restart Windows before re-testing.
CapFrameX Portable Mode
CapFrameX supports a portable mode that allows the application to run entirely from a single folder without writing to system directories. This is useful for running from USB drives, network shares, or keeping multiple isolated installations.
Portable mode is activated by placing a portable.json file in the same directory as the CapFrameX executable. See the v1.8.5 release notes for the full configuration reference, requirements, and behavior differences.
Troubleshooting & Known Issues
The following tips address the most common issues reported by users and can help resolve stability, overlay, and capture-related problems efficiently. We recommend working through them in order if you encounter unexpected behavior.
-
Ensure you are running the latest version
If you experience application crashes or unstable behavior, verify that you have installed CapFrameX v1.8.6 or newer. Many known issues have been resolved in this patch. If you were previously using version 1.7.7, we recommend uninstalling CapFrameX before installing the new version. -
Reset application settings
In some cases, corrupted or outdated configuration files may cause problems. Deleting
%appdata%/CapFrameX/Configuration/AppSettings.json
will reset CapFrameX to its default settings and often resolves startup or UI-related issues. -
Reset overlay configuration files
If overlay-related problems persist, try deleting the overlay configuration files located at
%appdata%/CapFrameX/Configuration/OverlayEntryConfiguration_(0/1/2).json.
These files will be recreated automatically o...
CapFrameX v1.8.5
Release Notes
Enhancements & New Features
- Support Intel Nova Lake + ES, Bartlett Lake, Emerald Rapids, Wildcat Lake
- New NVIDIA limit sensors
- Per-game VRAM sensors
- AMD GPU fan duty sensor
- SSD sensors
- Intel memory/uncore clock sensors incl. PTL model 0xD5
- MCP server implementation
- Removed stutter metrics from FPS graph, display times used for moving averages, reworked threshold and variance charts
- Adjusted piechart layout
- Removed GPU Power Load as default sensor
Bugfixes
- Duplicated GPU memory sensor entries
- Default sensors + new IsGroupNameCompatible helper
- Integer division in NvidiaGpu.cs
- Y-axis boundaries in frame time graph
- PMC Reader DRAM latency
Platform & Infrastructure
- ADLX 1.5 update
- IGCL update
- FrameView fully removed (project + Jenkins)
- Updated NuGet packages
- New overlay config migration test for NV Mobile + Intel
Runtime Requirements
- .NET 9 is now required for full feature support and optimal stability. Download here.
MCP Server: Setting up Claude Code communication
CapFrameX ships an in-process Model Context Protocol server hosted by CapFrameX.exe. Once registered with Claude Code, the assistant can read captures, compute statistics, query the live system, and diagnose capture issues. The endpoint exists only while CapFrameX is running.
Setup
-
Find the port. Open
%appdata%/CapFrameX/Configuration/AppSettings.jsonand readWebservicePort(default1337; CapFrameX falls back to a free port if it's taken). -
Register with Claude Code (one-time, user-scoped):
claude mcp add -s user capframex --transport http http://localhost:<port>/mcp
-
Verify:
claude mcp list
Expected:
capframex: http://localhost:<port>/mcp (HTTP) - ✓ Connected
In an active session, /mcp shows live status and the CapFrameX tools become available to the model.
Troubleshooting
- Disconnected / connect failure — CapFrameX isn't running, or the port changed since you registered. Re-check
WebservicePort, then:claude mcp remove capframex claude mcp add -s user capframex --transport http http://localhost:<new-port>/mcp
- Tools missing in the model — start a new Claude Code session; existing sessions don't pick up newly added servers.
- Disable entirely — set
McpEnabledtofalseinAppSettings.jsonand restart CapFrameX.
All v1.8.5 tools are read-only; the endpoint binds to localhost without auth.
CapFrameX Portable Mode
CapFrameX now supports a portable mode that allows the application to run entirely from a single folder without writing to system directories. This is useful for running from USB drives, network shares, or keeping multiple isolated installations.
How It Works
Portable mode is activated by placing a portable.json file in the same directory as the CapFrameX executable. When the application starts, it checks for this file and redirects all data storage to paths relative to the application directory.
Key Features
- Self-contained: All configuration, captures, screenshots, and logs are stored relative to the application folder
- No registry modifications: The application doesn't write to the Windows registry in portable mode
- No system folder usage: Bypasses
%AppData%andDocumentsfolders entirely - Configurable paths: All storage paths can be customized via
portable.json
portable.json Configuration
Create a portable.json file in the CapFrameX application directory with the following structure:
{
"portable": true,
"paths": {
"config": "./Portable/Config",
"captures": "./Portable/Captures",
"screenshots": "./Portable/Screenshots",
"logs": "./Portable/Logs",
"cloud": "./Portable/Captures/Cloud"
}
}Configuration Options
| Property | Description | Default |
|---|---|---|
portable |
Enables portable mode when true |
true |
paths.config |
Configuration files (AppSettings.json, overlay configs, sensor config, UI state) | ./Portable/Config |
paths.captures |
Capture recordings | ./Portable/Captures |
paths.screenshots |
Screenshot storage | ./Portable/Screenshots |
paths.logs |
Log files | ./Portable/Logs |
paths.cloud |
Cloud download directory | ./Portable/Captures/Cloud |
All paths are relative to the application directory. You can use ./ or .\ prefix, or just the folder name.
Requirements
When running in portable mode, the following dependencies must be installed on the system:
The application will check for these dependencies on startup and display a message if any are missing.
Creating a Portable Distribution
- Copy the CapFrameX application files to a folder
- Create a
portable.jsonfile with the configuration above - (Optional) Pre-create the
Portablesubdirectory with:Config,Captures,Screenshots,Logs - The application is now portable and can be moved to any location
Behavior Differences
| Feature | Installed Mode | Portable Mode |
|---|---|---|
| Config storage | %AppData%\CapFrameX\Configuration |
./Portable/Config |
| Captures storage | Documents\CapFrameX\Captures |
./Portable/Captures |
| Screenshots | Documents\CapFrameX\Screenshots |
./Portable/Screenshots |
| Logs | %AppData%\CapFrameX\Logs |
./Portable/Logs |
| UI state (window size, column widths) | %LocalAppData%\Jot |
./Portable/Config |
| Window title | "CapFrameX" | "CapFrameX Portable" |
| Config migration | Migrates old settings | Skipped |
| Start with Windows | Available | Disabled |
Notes
- Settings configured in portable mode are stored in the portable config folder and won't affect or be affected by an installed version
- The
portable.jsonfile must be valid JSON; if parsing fails, the application falls back to installed mode - Directories are automatically created if they don't exist
Troubleshooting & Known Issues
The following tips address the most common issues reported by users and can help resolve stability, overlay, and capture-related problems efficiently. We recommend working through them in order if you encounter unexpected behavior.
-
Ensure you are running the latest version
If you experience application crashes or unstable behavior, verify that you have installed CapFrameX v1.8.4 or newer. Many known issues have been resolved in this patch. If you were previously using version 1.7.7, we recommend uninstalling CapFrameX before installing the new version. -
Reset application settings
In some cases, corrupted or outdated configuration files may cause problems. Deleting
%appdata%/CapFrameX/Configuration/AppSettings.json
will reset CapFrameX to its default settings and often resolves startup or UI-related issues. -
Reset overlay configuration files
If overlay-related problems persist, try deleting the overlay configuration files located at
%appdata%/CapFrameX/Configuration/OverlayEntryConfiguration_(0/1/2).json.
These files will be recreated automatically on the next application start. -
Restore missing or zero-value overlay entries
When overlay entries are missing or display constant zero values, open the Overlay tab and use the Reset button to restore all overlay entries to a valid default state. -
Fix incorrect overlay entry order
If the order of overlay entries appears inconsistent or unintentionally rearranged, use the Sort button in the Overlay tab to restore a clean and logical ordering. -
Resolve frametime anomalies after updates
In rare cases, existing background capture processes can interfere with CapFrameX after an update. If you encounter frametime issues, close all running PresentMon processes before installing or launching CapFrameX v1.8.4 release. -
Avoid conflicts with other monitoring tools
Applications such as HWiNFO or AIDA64 that implement their own FPS or frametime metrics may conflict with CapFrameX’s capture service, as they also rely on PresentMon-based mechanisms. Disabling overlapping FPS or frametime monitoring features in those tools is strongly recommended when using CapFrameX.
Known Limitations
- PC latency metric may return invalid values (NaN) under specific conditions.
CapFrameX v1.8.4
Release Notes
Enhancements & New Features
- Ryzen SMU support Zen 5
- Overlay profile compatibility mode
- New internal management stable sensor IDs
- Drag&Drop folders on Comparison and Report tab
- Auto enable PMD measurement
- Detailed process info Capture tab
- RAM Game Used sensor
- Minor UI improvements
Bugfixes
- Capture files cannot be saved to network drives
- Invalid aggregation sensor data
- Invalid D3D sensors
- Sensor profiles not saved correctly
- PresentMon opens in window mode
Platform & Infrastructure
- Fixed device path for latest PawnIO driver 2.1.0
Runtime Requirements
- .NET 9 is now required for full feature support and optimal stability. Download here.
CapFrameX PMC Reader Plugin
The PMC Reader Plugin extends CapFrameX with low-level CPU performance monitoring counters (PMC) by reading Model Specific Registers (MSRs) directly. It exposes CPU cache and memory metrics — such as L3 cache hit rates, DRAM bandwidth, and DRAM latency — that are not accessible through standard OS APIs.
Supported CPUs
| Vendor | Architecture |
|---|---|
| AMD | Zen 4, Zen 5 |
| Intel | Alder Lake, Raptor Lake (Refresh), Arrow Lake |
Sensors
Base Sensors (all supported CPUs)
| Sensor | Unit | Description |
|---|---|---|
| CPU L3 Hit Rate | % | Overall L3 cache hit rate |
| CPU DRAM Bandwidth | GiB/s | Total DRAM read + write bandwidth |
| CPU DRAM Latency | ns | DRAM access latency |
Per-CCX Sensors (AMD multi-CCX CPUs)
| Sensor | Unit | Description |
|---|---|---|
| CPU L3 Hit Rate CCX {i} | % | L3 cache hit rate per CCX |
| CPU DRAM Latency CCX {i} | ns | DRAM access latency per CCX |
Gaming Sensors — P-Cores (Intel hybrid CPUs)
| Sensor | Unit | Description |
|---|---|---|
| CPU P-Core IPC | ratio | Instructions per clock |
| CPU P-Core L3 Hitrate | % | L3 cache hit rate |
| CPU P-Core L3 Bound | % | Cycles stalled on L3 |
| CPU P-Core Mem Bound | % | Cycles stalled on memory |
| CPU P-Core L3 Miss BW | GiB/s | L3 miss bandwidth |
Gaming Sensors — E-Cores (Intel hybrid CPUs)
| Sensor | Unit | Description |
|---|---|---|
| CPU E-Core IPC | ratio | Instructions per clock |
| CPU E-Core L3 Hitrate | % | L3 cache hit rate |
| CPU E-Core L3 Bound | % | Cycles stalled on L3 |
| CPU E-Core Mem Bound | % | Cycles stalled on memory |
| CPU E-Core L3 Miss BW | GiB/s | L3 miss bandwidth |
Installation
- Download
CapFrameX.PmcReader.Plugin.dllfrom the release assets - Copy the DLL into your CapFrameX installation folder
Default path:C:\Program Files (x86)\CapFrameX - Restart CapFrameX — the plugin sensors will appear automatically
⚠️ Important
This plugin uses the WinRing0 kernel driver to access CPU MSRs. WinRing0 is blacklisted by Microsoft Windows Defender and may be flagged or blocked.
In the worst case, you may need to disable Windows Defender real-time protection for the kernel driver to work properly.
Use this plugin at your own risk.
CapFrameX Portable Mode
CapFrameX now supports a portable mode that allows the application to run entirely from a single folder without writing to system directories. This is useful for running from USB drives, network shares, or keeping multiple isolated installations.
How It Works
Portable mode is activated by placing a portable.json file in the same directory as the CapFrameX executable. When the application starts, it checks for this file and redirects all data storage to paths relative to the application directory.
Key Features
- Self-contained: All configuration, captures, screenshots, and logs are stored relative to the application folder
- No registry modifications: The application doesn't write to the Windows registry in portable mode
- No system folder usage: Bypasses
%AppData%andDocumentsfolders entirely - Configurable paths: All storage paths can be customized via
portable.json
portable.json Configuration
Create a portable.json file in the CapFrameX application directory with the following structure:
{
"portable": true,
"paths": {
"config": "./Portable/Config",
"captures": "./Portable/Captures",
"screenshots": "./Portable/Screenshots",
"logs": "./Portable/Logs",
"cloud": "./Portable/Captures/Cloud"
}
}Configuration Options
| Property | Description | Default |
|---|---|---|
portable |
Enables portable mode when true |
true |
paths.config |
Configuration files (AppSettings.json, overlay configs, sensor config, UI state) | ./Portable/Config |
paths.captures |
Capture recordings | ./Portable/Captures |
paths.screenshots |
Screenshot storage | ./Portable/Screenshots |
paths.logs |
Log files | ./Portable/Logs |
paths.cloud |
Cloud download directory | ./Portable/Captures/Cloud |
All paths are relative to the application directory. You can use ./ or .\ prefix, or just the folder name.
Requirements
When running in portable mode, the following dependencies must be installed on the system:
The application will check for these dependencies on startup and display a message if any are missing.
Creating a Portable Distribution
- Copy the CapFrameX application files to a folder
- Create a
portable.jsonfile with the configuration above - (Optional) Pre-create the
Portablesubdirectory with:Config,Captures,Screenshots,Logs - The application is now portable and can be moved to any location
Behavior Differences
| Feature | Installed Mode | Portable Mode |
|---|---|---|
| Config storage | %AppData%\CapFrameX\Configuration |
./Portable/Config |
| Captures storage | Documents\CapFrameX\Captures |
./Portable/Captures |
| Screenshots | Documents\CapFrameX\Screenshots |
./Portable/Screenshots |
| Logs | %AppData%\CapFrameX\Logs |
./Portable/Logs |
| UI state (window size, column widths) | %LocalAppData%\Jot |
./Portable/Config |
| Window title | "CapFrameX" | "CapFrameX Portable" |
| Config migration | Migrates old settings | Skipped |
| Start with Windows | Available | Disabled |
Notes
- Settings configured in portable mode are stored in the portable config folder and won't affect or be affected by an installed version
- The
portable.jsonfile must be valid JSON; if parsing fails, the application falls back to installed mode - Directories are automatically created if they don't exist
Troubleshooting & Known Issues
The following tips address the most common issues reported by users and can help resolve stability, overlay, and capture-related problems efficiently. We recommend working through them in order if you encounter unexpected behavior.
-
Ensure you are running the latest version
If you experience application crashes or unstable behavior, verify that you have installed CapFrameX v1.8.4 or newer. Many known issues have been resolved in this patch. If you were previously using version 1.7.7, we recommend uninstalling CapFrameX before installing the new version. -
Reset application settings
In some cases, corrupted or outdated configuration files may cause problems. Deleting
%appdata%/CapFrameX/Configuration/AppSettings.json
will reset CapFrameX to its default settings and often resolves startup or UI-related issues. -
Reset overlay configuration files
If overlay-related problems persist, try deleting the overlay configuration files located at
%appdata%/CapFrameX/Configuration/OverlayEntryConfiguration_(0/1/2).json.
These files will be recreated automatically on the next application start. -
Restore missing or zero-value overlay entries
When overlay entries are missing or display constant zero values, open the Overlay tab and use the Reset button to restore all overlay entries to a valid default state. -
Fix incorrect overlay entry order
If the order of overlay entries appears inconsistent or unintentionally rearranged, use the Sort button in the Overlay tab to restore a clean and logical ordering. -
Resolve frametime anomalies after updates
In rare cases, existing background capture processes can interfere with CapFrameX after an update. If you encounter frametime issues, close all running PresentMon processes before installing or launching CapFrameX v1.8.4 release. -
Avoid conflicts with other monitoring tools
Applications such as HWiNFO or AIDA64 that implement their own FPS or frametime metrics may conflict with CapFrameX’s capture service, as they also rely on PresentMon-based mechanisms. Disabling overlapping FPS or frametime monitoring features in those tools is strongly recommended when using CapFrameX.
Known Limitations
- PC latency metric may return invalid values (NaN) under specific conditions.
CapFrameX v1.8.4 beta
Release Notes
Bugfixes
- Capture files cannot be saved to network drives.
Runtime Requirements
- .NET 9 is now required for full feature support and optimal stability. Download here.
CapFrameX Portable Mode
CapFrameX now supports a portable mode that allows the application to run entirely from a single folder without writing to system directories. This is useful for running from USB drives, network shares, or keeping multiple isolated installations.
How It Works
Portable mode is activated by placing a portable.json file in the same directory as the CapFrameX executable. When the application starts, it checks for this file and redirects all data storage to paths relative to the application directory.
Key Features
- Self-contained: All configuration, captures, screenshots, and logs are stored relative to the application folder
- No registry modifications: The application doesn't write to the Windows registry in portable mode
- No system folder usage: Bypasses
%AppData%andDocumentsfolders entirely - Configurable paths: All storage paths can be customized via
portable.json
portable.json Configuration
Create a portable.json file in the CapFrameX application directory with the following structure:
{
"portable": true,
"paths": {
"config": "./Portable/Config",
"captures": "./Portable/Captures",
"screenshots": "./Portable/Screenshots",
"logs": "./Portable/Logs",
"cloud": "./Portable/Captures/Cloud"
}
}Configuration Options
| Property | Description | Default |
|---|---|---|
portable |
Enables portable mode when true |
true |
paths.config |
Configuration files (AppSettings.json, overlay configs, sensor config, UI state) | ./Portable/Config |
paths.captures |
Capture recordings | ./Portable/Captures |
paths.screenshots |
Screenshot storage | ./Portable/Screenshots |
paths.logs |
Log files | ./Portable/Logs |
paths.cloud |
Cloud download directory | ./Portable/Captures/Cloud |
All paths are relative to the application directory. You can use ./ or .\ prefix, or just the folder name.
Requirements
When running in portable mode, the following dependencies must be installed on the system:
The application will check for these dependencies on startup and display a message if any are missing.
Creating a Portable Distribution
- Copy the CapFrameX application files to a folder
- Create a
portable.jsonfile with the configuration above - (Optional) Pre-create the
Portablesubdirectory with:Config,Captures,Screenshots,Logs - The application is now portable and can be moved to any location
Behavior Differences
| Feature | Installed Mode | Portable Mode |
|---|---|---|
| Config storage | %AppData%\CapFrameX\Configuration |
./Portable/Config |
| Captures storage | Documents\CapFrameX\Captures |
./Portable/Captures |
| Screenshots | Documents\CapFrameX\Screenshots |
./Portable/Screenshots |
| Logs | %AppData%\CapFrameX\Logs |
./Portable/Logs |
| UI state (window size, column widths) | %LocalAppData%\Jot |
./Portable/Config |
| Window title | "CapFrameX" | "CapFrameX Portable" |
| Config migration | Migrates old settings | Skipped |
| Start with Windows | Available | Disabled |
Notes
- Settings configured in portable mode are stored in the portable config folder and won't affect or be affected by an installed version
- The
portable.jsonfile must be valid JSON; if parsing fails, the application falls back to installed mode - Directories are automatically created if they don't exist
Troubleshooting & Known Issues
The following tips address the most common issues reported by users and can help resolve stability, overlay, and capture-related problems efficiently. We recommend working through them in order if you encounter unexpected behavior.
-
Ensure you are running the latest version
If you experience application crashes or unstable behavior, verify that you have installed CapFrameX v1.8.3 or newer. Many known issues have been resolved in this patch. If you were previously using version 1.7.7, we recommend uninstalling CapFrameX before installing the new version. -
Reset application settings
In some cases, corrupted or outdated configuration files may cause problems. Deleting
%appdata%/CapFrameX/Configuration/AppSettings.json
will reset CapFrameX to its default settings and often resolves startup or UI-related issues. -
Reset overlay configuration files
If overlay-related problems persist, try deleting the overlay configuration files located at
%appdata%/CapFrameX/Configuration/OverlayEntryConfiguration_(0/1/2).json.
These files will be recreated automatically on the next application start. -
Restore missing or zero-value overlay entries
When overlay entries are missing or display constant zero values, open the Overlay tab and use the Reset button to restore all overlay entries to a valid default state. -
Fix incorrect overlay entry order
If the order of overlay entries appears inconsistent or unintentionally rearranged, use the Sort button in the Overlay tab to restore a clean and logical ordering. -
Resolve frametime anomalies after updates
In rare cases, existing background capture processes can interfere with CapFrameX after an update. If you encounter frametime issues, close all running PresentMon processes before installing or launching CapFrameX v1.8.3 release. -
Avoid conflicts with other monitoring tools
Applications such as HWiNFO or AIDA64 that implement their own FPS or frametime metrics may conflict with CapFrameX’s capture service, as they also rely on PresentMon-based mechanisms. Disabling overlapping FPS or frametime monitoring features in those tools is strongly recommended when using CapFrameX.
Known Limitations
- PC latency metric may return invalid values (NaN) under specific conditions.
CapFrameX v1.8.3
Release Notes
Enhancements & New Features
- Increased buffer capacity for extremely high fps scenarios
Bugfixes
- Fixed driver version overlay info for AMD GPUs
Platform & Infrastructure
- Readded signed PawnIO.sys driver to address Windows SmartScreen issues
Runtime Requirements
- .NET 9 is now required for full feature support and optimal stability. Download here.
CapFrameX Portable Mode
CapFrameX now supports a portable mode that allows the application to run entirely from a single folder without writing to system directories. This is useful for running from USB drives, network shares, or keeping multiple isolated installations.
How It Works
Portable mode is activated by placing a portable.json file in the same directory as the CapFrameX executable. When the application starts, it checks for this file and redirects all data storage to paths relative to the application directory.
Key Features
- Self-contained: All configuration, captures, screenshots, and logs are stored relative to the application folder
- No registry modifications: The application doesn't write to the Windows registry in portable mode
- No system folder usage: Bypasses
%AppData%andDocumentsfolders entirely - Configurable paths: All storage paths can be customized via
portable.json
portable.json Configuration
Create a portable.json file in the CapFrameX application directory with the following structure:
{
"portable": true,
"paths": {
"config": "./Portable/Config",
"captures": "./Portable/Captures",
"screenshots": "./Portable/Screenshots",
"logs": "./Portable/Logs",
"cloud": "./Portable/Captures/Cloud"
}
}Configuration Options
| Property | Description | Default |
|---|---|---|
portable |
Enables portable mode when true |
true |
paths.config |
Configuration files (AppSettings.json, overlay configs, sensor config, UI state) | ./Portable/Config |
paths.captures |
Capture recordings | ./Portable/Captures |
paths.screenshots |
Screenshot storage | ./Portable/Screenshots |
paths.logs |
Log files | ./Portable/Logs |
paths.cloud |
Cloud download directory | ./Portable/Captures/Cloud |
All paths are relative to the application directory. You can use ./ or .\ prefix, or just the folder name.
Requirements
When running in portable mode, the following dependencies must be installed on the system:
The application will check for these dependencies on startup and display a message if any are missing.
Creating a Portable Distribution
- Copy the CapFrameX application files to a folder
- Create a
portable.jsonfile with the configuration above - (Optional) Pre-create the
Portablesubdirectory with:Config,Captures,Screenshots,Logs - The application is now portable and can be moved to any location
Behavior Differences
| Feature | Installed Mode | Portable Mode |
|---|---|---|
| Config storage | %AppData%\CapFrameX\Configuration |
./Portable/Config |
| Captures storage | Documents\CapFrameX\Captures |
./Portable/Captures |
| Screenshots | Documents\CapFrameX\Screenshots |
./Portable/Screenshots |
| Logs | %AppData%\CapFrameX\Logs |
./Portable/Logs |
| UI state (window size, column widths) | %LocalAppData%\Jot |
./Portable/Config |
| Window title | "CapFrameX" | "CapFrameX Portable" |
| Config migration | Migrates old settings | Skipped |
| Start with Windows | Available | Disabled |
Notes
- Settings configured in portable mode are stored in the portable config folder and won't affect or be affected by an installed version
- The
portable.jsonfile must be valid JSON; if parsing fails, the application falls back to installed mode - Directories are automatically created if they don't exist
Troubleshooting & Known Issues
The following tips address the most common issues reported by users and can help resolve stability, overlay, and capture-related problems efficiently. We recommend working through them in order if you encounter unexpected behavior.
-
Ensure you are running the latest version
If you experience application crashes or unstable behavior, verify that you have installed CapFrameX v1.8.3 or newer. Many known issues have been resolved in this patch. If you were previously using version 1.7.7, we recommend uninstalling CapFrameX before installing the new version. -
Reset application settings
In some cases, corrupted or outdated configuration files may cause problems. Deleting
%appdata%/CapFrameX/Configuration/AppSettings.json
will reset CapFrameX to its default settings and often resolves startup or UI-related issues. -
Reset overlay configuration files
If overlay-related problems persist, try deleting the overlay configuration files located at
%appdata%/CapFrameX/Configuration/OverlayEntryConfiguration_(0/1/2).json.
These files will be recreated automatically on the next application start. -
Restore missing or zero-value overlay entries
When overlay entries are missing or display constant zero values, open the Overlay tab and use the Reset button to restore all overlay entries to a valid default state. -
Fix incorrect overlay entry order
If the order of overlay entries appears inconsistent or unintentionally rearranged, use the Sort button in the Overlay tab to restore a clean and logical ordering. -
Resolve frametime anomalies after updates
In rare cases, existing background capture processes can interfere with CapFrameX after an update. If you encounter frametime issues, close all running PresentMon processes before installing or launching CapFrameX v1.8.3 release. -
Avoid conflicts with other monitoring tools
Applications such as HWiNFO or AIDA64 that implement their own FPS or frametime metrics may conflict with CapFrameX’s capture service, as they also rely on PresentMon-based mechanisms. Disabling overlapping FPS or frametime monitoring features in those tools is strongly recommended when using CapFrameX.
Known Limitations
- PC latency metric may return invalid values (NaN) under specific conditions.