Skip to content

Repository files navigation

IGP Performance Monitor

IGP Performance Monitor

Windows desktop monitor for real-time graphics performance.

Download  ·  User guide  ·  使用指南  ·  Troubleshooting  ·  Changelog

English · 简体中文 · 繁體中文 · 日本語

CI Release User guide 使用指南 License: MIT

The app wraps Intel PresentMon 2.4.1, enriches every frame with system/process metrics (CPU, RAM, NVIDIA GPU/VRAM), and shows live charts in PyQt5.

Requires Administrator (or membership in the Windows Performance Log Users group). PresentMon uses ETW.

Install

Download the latest installer or portable EXE from GitHub Releases:

Asset Use
IGPPerformanceMonitor-Setup-x.y.z.exe Recommended. Installs to Program Files, Start Menu shortcut, uninstaller. Requests admin.
IGPPerformanceMonitor.exe Portable one-file build (also used by in-app updates).
auto_updater.exe Internal swapper used by Help → Check for Updates.

Packaged builds check GitHub Releases shortly after launch and can roll back to the previous published version.

Documentation

The same manuals ship in the app under Help → User Manual.

English 简体中文 繁體中文 日本語
How to use the app User guide 使用指南 使用指南 ユーザーガイド
When something fails Troubleshooting 排障 疑難排解 トラブルシューティング
What changed Changelog 更新记录

Full index: docs/README.md.

Features

  • Multi-app capture (several process names at once)
  • Live charts: FPS, frame time, CPU/GPU/RAM/VRAM, per-app and system
  • Always-on-top overlay that follows the target window
  • CSV export / import with offline stutter analysis
  • English and Simplified Chinese UI (IGP_LANG=en or zh_CN)
  • Dark / light theme
  • In-app self-update from GitHub Releases (SHA256 verified)

Run from source

pip install -r requirements.txt
Scripts\run_dev.bat
python -m src.main --debug

Headless capture (admin). Prefer Scripts\capture_debug.bat so UAC relaunch still writes temp\:

Scripts\capture_debug.bat --process-name Unity.exe --timed 10
python -m src.main --headless --process-name Unity.exe --timed 10

Build

pip install -r requirements-dev.txt
Scripts\build.bat
Scripts\build_installer.bat
python Scripts\generate_manifest.py

Outputs in dist\:

  • IGPPerformanceMonitor.exe
  • auto_updater.exe
  • IGPPerformanceMonitor-Setup-<version>.exe (needs Inno Setup 6)
  • app_manifest.json (GitHub Release metadata)

Default branch is develop. Stabilization and tags live on release. Both are protected.

Tagging vX.Y.Z on release (must match VERSION) runs .github/workflows/release.yml, which publishes those files as a GitHub Release.

Tests

python Scripts/check.py              :: compile + import + lint
python -m src.main -t ui             :: window + screenshots
python -m src.main -t update         :: download / verify / cancel
python -m src.main -t startup        :: first-run language picker (real child process)
python -m src.tests                  :: i18n / CSV / manifest contracts

The capture area needs admin: Scripts\selfcheck.bat capture -a App.exe -s 8. See .claude/skills/test-after-changes/SKILL.md.

Repository layout

src/                  Application, tests, auto-updater
Scripts/              Dev / build / installer / headless helpers
docs/                 Localized README + user manuals (en, zh-CN, zh-TW, ja)
assets/               App icon (PNG + ICO) and README logo
third-party/          Bundled PresentMon 2.4.1 CLI
.claude/skills/       Agent workflow skills (English)
.github/workflows/    CI + Release

Architecture (short)

PresentMon.exe --stdout--> CsvParser --> FrameData
  PresentMonWrapper._enrich_frame()   # stamps sampler cache only
  DataStore.add_frame()
SystemMetricsSampler (~500ms) --> DataStore snapshots + _latest cache

Do not call psutil.cpu_percent() per frame — Windows clock granularity makes that return 0.0. See CLAUDE.md and .claude/skills/dev-guide/.

Contributing / security

License

MIT. PresentMon is bundled under its own license from Intel; see third-party notices.

About

Windows real-time graphics performance monitor built on Intel PresentMon.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages