Releases · CXWorld/CapFrameX · GitHub
Skip to content

Releases: CXWorld/CapFrameX

CapFrameX v1.8.7 beta

CapFrameX v1.8.7 beta Pre-release
Pre-release

Choose a tag to compare

@DevTechProfile DevTechProfile released this 14 Jun 10:13

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 .sys file, 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.dll was extracted from a downloaded zip or installer, Windows tagged it with the "Mark of the Web" and .NET's Assembly.LoadFrom refused to load it (NotSupportedException, HRESULT 0x80131515). The plugin is now loaded with Assembly.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

  1. Find the port. Open %appdata%/CapFrameX/Configuration/AppSettings.json and read WebservicePort (default 1337; CapFrameX falls back to a free port if it's taken).

  2. Register with Claude Code (one-time, user-scoped):

    claude mcp add -s user capframex --transport http http://localhost:<port>/mcp
  3. 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 McpEnabled to false in AppSettings.json and 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

  1. Download CapFrameX.PmcReader.Plugin.dll from the release assets
  2. Copy the DLL into your CapFrameX installation folder
    Default path: C:\Program Files (x86)\CapFrameX
  3. 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 Vanguard vgk.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...

Read more

CapFrameX v1.8.6

Choose a tag to compare

@DevTechProfile DevTechProfile released this 12 Jun 17:02

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_type and --track_app_timing are 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

  1. Find the port. Open %appdata%/CapFrameX/Configuration/AppSettings.json and read WebservicePort (default 1337; CapFrameX falls back to a free port if it's taken).

  2. Register with Claude Code (one-time, user-scoped):

    claude mcp add -s user capframex --transport http http://localhost:<port>/mcp
  3. 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 McpEnabled to false in AppSettings.json and 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

  1. Download CapFrameX.PmcReader.Plugin.dll from the release assets
  2. Copy the DLL into your CapFrameX installation folder
    Default path: C:\Program Files (x86)\CapFrameX
  3. 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 Vanguard vgk.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.

  1. 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.

  2. 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.

  3. 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...

Read more

CapFrameX v1.8.5

Choose a tag to compare

@DevTechProfile DevTechProfile released this 05 May 16:40

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

  1. Find the port. Open %appdata%/CapFrameX/Configuration/AppSettings.json and read WebservicePort (default 1337; CapFrameX falls back to a free port if it's taken).

  2. Register with Claude Code (one-time, user-scoped):

    claude mcp add -s user capframex --transport http http://localhost:<port>/mcp
  3. 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 McpEnabled to false in AppSettings.json and 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% and Documents folders 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:

  • .NET 9.0 Desktop Runtime (x64) - Download
  • Visual C++ 2015-2022 Redistributable (x64) - Download

The application will check for these dependencies on startup and display a message if any are missing.

Creating a Portable Distribution

  1. Copy the CapFrameX application files to a folder
  2. Create a portable.json file with the configuration above
  3. (Optional) Pre-create the Portable subdirectory with: Config, Captures, Screenshots, Logs
  4. 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.json file 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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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

Choose a tag to compare

@DevTechProfile DevTechProfile released this 19 Feb 16:08

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

  1. Download CapFrameX.PmcReader.Plugin.dll from the release assets
  2. Copy the DLL into your CapFrameX installation folder
    Default path: C:\Program Files (x86)\CapFrameX
  3. 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% and Documents folders 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:

  • .NET 9.0 Desktop Runtime (x64) - Download
  • Visual C++ 2015-2022 Redistributable (x64) - Download

The application will check for these dependencies on startup and display a message if any are missing.

Creating a Portable Distribution

  1. Copy the CapFrameX application files to a folder
  2. Create a portable.json file with the configuration above
  3. (Optional) Pre-create the Portable subdirectory with: Config, Captures, Screenshots, Logs
  4. 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.json file 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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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

CapFrameX v1.8.4 beta Pre-release
Pre-release

Choose a tag to compare

@DevTechProfile DevTechProfile released this 25 Jan 10:04

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% and Documents folders 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:

  • .NET 9.0 Desktop Runtime (x64) - Download
  • Visual C++ 2015-2022 Redistributable (x64) - Download

The application will check for these dependencies on startup and display a message if any are missing.

Creating a Portable Distribution

  1. Copy the CapFrameX application files to a folder
  2. Create a portable.json file with the configuration above
  3. (Optional) Pre-create the Portable subdirectory with: Config, Captures, Screenshots, Logs
  4. 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.json file 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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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

Choose a tag to compare

@DevTechProfile DevTechProfile released this 24 Jan 11:50

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% and Documents folders 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:

  • .NET 9.0 Desktop Runtime (x64) - Download
  • Visual C++ 2015-2022 Redistributable (x64) - Download

The application will check for these dependencies on startup and display a message if any are missing.

Creating a Portable Distribution

  1. Copy the CapFrameX application files to a folder
  2. Create a portable.json file with the configuration above
  3. (Optional) Pre-create the Portable subdirectory with: Config, Captures, Screenshots, Logs
  4. 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.json file 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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.2

Choose a tag to compare

@DevTechProfile DevTechProfile released this 23 Jan 17:22

Release Notes

Enhancements & New Features

  • Effective clock support for Intel CPUs
  • ADLX support AMD GPUs
  • AMD NPU telemetry
  • Improved overlay management
  • Improved overlay templates
  • Improved display detection for MRR metric
  • Disk space validation when saving capture files

Bugfixes

  • Fixed order Report tab table
  • Fixed Revert button overlay template
  • All sensors initially selected

Platform & Infrastructure

  • New plugin interface

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% and Documents folders 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:

  • .NET 9.0 Desktop Runtime (x64) - Download
  • Visual C++ 2015-2022 Redistributable (x64) - Download

The application will check for these dependencies on startup and display a message if any are missing.

Creating a Portable Distribution

  1. Copy the CapFrameX application files to a folder
  2. Create a portable.json file with the configuration above
  3. (Optional) Pre-create the Portable subdirectory with: Config, Captures, Screenshots, Logs
  4. 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.json file 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.

  1. Ensure you are running the latest version
    If you experience application crashes or unstable behavior, verify that you have installed CapFrameX v1.8.2 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.2 release.

  7. 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.1

Choose a tag to compare

@DevTechProfile DevTechProfile released this 16 Jan 18:50

Release Notes

Enhancements & New Features

  • Auto generate overlay profiles
  • vkcube overlay preview window
  • PresentMon 2.4.1 with many fixes and updates
  • Overlay list search and filter
  • Check for FrameViewService ETW session

Bugfixes

  • Option menu combo boxes
  • PMD data capture interval length

Platform & Infrastructure

  • Smarter PawnIO driver management
  • App-level BENCHLAB service management (no need to install the service separately)
  • Smarter check for .NET 9 (SDK, Desktop Runtime, Standard Runtime)

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% and Documents folders 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:

  • .NET 9.0 Desktop Runtime (x64) - Download
  • Visual C++ 2015-2022 Redistributable (x64) - Download

The application will check for these dependencies on startup and display a message if any are missing.

Creating a Portable Distribution

  1. Copy the CapFrameX application files to a folder
  2. Create a portable.json file with the configuration above
  3. (Optional) Pre-create the Portable subdirectory with: Config, Captures, Screenshots, Logs
  4. 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.json file 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.

  1. Ensure you are running the latest version
    If you experience application crashes or unstable behavior, verify that you have installed CapFrameX v1.8.1 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.1 release.

  7. 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.0 beta

CapFrameX v1.8.0 beta Pre-release
Pre-release

Choose a tag to compare

@DevTechProfile DevTechProfile released this 12 Jan 19:02

Release Notes

Enhancements & New Features

  • Support Intel Panther Lake voltage sensors
  • Added model IDs for Intel Arrow Lake-S Refresh (reserved)
  • Added model IDs for Intel Core Ultra 300 Series (reserved)
  • Full working portable mode
  • Check for .NET 9 and Visual C++ Redistributables on app start

Bugfixes

  • Overlay group control

Platform & Infrastructure

  • Updated several Nuget packages

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% and Documents folders 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:

  • .NET 9.0 Desktop Runtime (x64) - Download
  • Visual C++ 2015-2022 Redistributable (x64) - Download

The application will check for these dependencies on startup and display a message if any are missing.

Creating a Portable Distribution

  1. Copy the CapFrameX application files to a folder
  2. Create a portable.json file with the configuration above
  3. (Optional) Pre-create the Portable subdirectory with: Config, Captures, Screenshots, Logs
  4. 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.json file 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.

  1. Ensure you are running the latest version
    If you experience application crashes or unstable behavior, verify that you have installed CapFrameX v1.7.9 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.7.9 release or v1.8.0 beta.

  7. 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.

BENCHLAB Service

When using BENCHLAB service, unzip the folder in a suitable installation folder like C:\Benchlab Service or D:\Tools, then run the .bat script as admin. Don't install the service from the Download folder. Install latest .NET 9 runtime. Download here.

CapFrameX v1.7.9

Choose a tag to compare

@DevTechProfile DevTechProfile released this 09 Jan 20:28

Release Notes

Enhancements & New Features

  • Animation Error smoothness metric. More info here.

Bugfixes

  • AMD Ryzen 9000 clock speed calculation when bus speed is not 100MHz

Platform & Infrastructure

  • Reworked Microsoft Visual C++ Redistributable installer detection

Runtime Requirements

  • .NET 9 is now required for full feature support and optimal stability. Download here.

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.

  1. Ensure you are running the latest version
    If you experience application crashes or unstable behavior, verify that you have installed CapFrameX v1.7.9 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.7.9.

  7. 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.

BENCHLAB Service

When using BENCHLAB service, unzip the folder in a suitable installation folder like C:\Benchlab Service or D:\Tools, then run the .bat script as admin. Don't install the service from the Download folder. Install latest .NET 9 runtime. Download here.