CapFrameX v1.8.7 beta
Pre-releaseRelease 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 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.7 Beta or newer. Many known issues have been resolved in this build. 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.7 Beta. -
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.
- This is a beta build — expect rough edges in the reworked PMC Reader driver management and please report regressions.