PresentMon Console

Intel Corporation·Intel.PresentMon.Console

A telemetry application to monitor and measure graphics applications.

A standalone console application that uses the PresentMon SDK to capture and analyze graphics applications, outputting data to the console and/or CSV file(s).

winget install --id Intel.PresentMon.Console --exact --source winget

Latest 2.6.0.0·September 21, 2026

Release Notes

Release Notes

Major features

Metrics and capture

  • PSO compilation metrics: Track D3D12 pipeline state object compilation via ETW (count, duration, and busy percentage), attributed into frame/CSV capture.
  • OS DDI flip events: Track newer OS DDI events for per-flip timestamps and completed/dropped flip reporting.
  • CSV display attribution: CSV output includes source ID and layer ID for flips so multi-plane and multi-display scenarios are easier to analyze.
  • Display metadata: Additional display metadata is surfaced in capture/output paths.

Telemetry architecture

  • Fine-grained telemetry providers: Per-metric provider granularity so only required endpoints are polled; supports combining providers and plug-in-style extension.
  • Native telemetry format: ADL, NVAPI/NVML, IGCL, and WMI paths emit the dynamic caps/polling model directly; legacy telemetry shims removed.
  • CPU temperature (UCI socwatch): Optional UCI socwatch integration in the service for CPU temperature where MSR-style access is restricted; builds and runs when UCI is not present.
  • ADL memory utilization: AMD dedicated VRAM usage reporting improved and validated against Windows-reported values.

Intel PresentMon (IPM) UI

  • Per-metric multi-device selection: Telemetry from multiple adapters can be shown at once; overlay presets can mix devices per metric.
  • Game Experience preset: Overlay preset highlighting metrics that correlate with perceived motion and animation quality.
  • Metric availability feedback: Unavailable telemetry metrics stay visible in pickers and overlay loadouts (dimmed/marked) instead of disappearing silently. Hovering over unavailable metrics shows reason why not available. This information can also be dumped to CSV via the presentmon-cli dump-caps subcommand.
  • Array metrics: array metrics (multiple fans on 1 GPU etc.) now surface as a single metric with separate index dropdown, instead of multiple independent metrics.

Performance and reliability

Service efficiency

  • Lower scheduling overhead: ETW flush and related loops use coarser Sleep-based waiting instead of high-precision timers where jitter is acceptable, cutting CPU use under load by 78% (including on mobile-class systems).
  • Idle log flushing: Diagnostic log flushing is suppressed when the service is not actively tracking or polling telemetry, reducing idle CPU from 0.003% to 0.000%.
  • Targeted telemetry polling: Continued refinement so providers poll only metrics clients actually consume.

Stability and targeting

  • Autotargeting: Fixed failures when GPU top polling errors aborted the loop early, and a race when the target app starts as a console process before its 3D window appears.
  • Service restart: Fixed service failing to restart while a client session still holds shared-memory objects.
  • Concurrent launches: Second IPM instance is blocked cleanly instead of opening a broken empty window.
  • Loader / internal API compatibility: Private API signature changes no longer break the loader; missing or misaligned internal endpoints are non-fatal.

API and integration

  • NVIDIA custom flip manifest: NVIDIA custom flip ETW manifest is deployed with the service so decoding works on clean dev machines without a global manifest install.
  • Integrated GPU ordering: Integrated Intel/AMD GPUs are detected reliably and sorted below discrete GPUs in device lists.
  • Availability Feedback: introspection now surfaces more detailed reasons why a metric is not available (not available on this device vs. not present at all in the source API vs. PresentMon doesn't support it in this build).

UI and usability

  • Version in UI: Installed PresentMon version (or build identity for custom/nightly builds) is shown in the capture application UI.

Removals

  • Flash Injector removed: Experimental Flash Injector DLL/EXE, client hooks, build scripting, and UI have been removed to simplify the solution and builds.

Dependencies and infrastructure

  • CEF version locking: Checked-in lock file plus upgrade-cef / pull-cef scripts; build and MSI validate CEF version and binary hashes.
  • UCI SDK: UCI payload externalized with updated packaging/installer deployment (UCI 0.8 line).
  • Front-end tooling: Vite/Vue dev dependency updates in the web UI project.

Bug fixes

  • ADL/NVML struct and provider fixes affecting telemetry correctness.
  • Introspection readiness wait when opening a client session.
  • Installer library load in IDE scenarios; AppData apply method fixes.
  • Coverity-driven fixes and CFG hardening for the Win32 console application.
  • IGCL version check.

Developer and test infrastructure (not end-user facing)

  • Broad test suite repair: session API upgrades, ETL aux data, OPM/service parity, deterministic dynamic-poll playback, reduced brittleness in timer and paced-polled tests.
  • Parameterized IPM ULT framework to simplify adding ETL playback tests.

Installer type: portable

x64—B2A706BC6AD475749E3B7E3409263AA1E6906D45BDCF993F6DBC0F660188F1AF

Details

Homepage
https://github.com/GameTechDev/PresentMon
License
MIT
Publisher
Intel Corporation
Support
https://github.com/GameTechDev/PresentMon/issues
Copyright
Copyright (C) 2017-2026 Intel Corporation
Moniker
presentmon-console

Tags

analysiscaptureconsoleevent-tracinggaminggraphicsintelperformancetelemetry

Older versions (10)

2.5.1.0
x64—9BEC3083069F58F911E6A512F4806DB51A27BD096103087BC1D05EF54C80A191
2.4.1.0
x64—D74183E7AE630F72CD3690BE0373ECBFDC6CBB86578148AAB8FA2A7166068F34
x86—360A7A6BA18DC95C60874FC78DC31A7C4103B48030D8D41C8569792A4B787C66
2.4.0.0
x64—EFE55AA91D381F425E686C87696965DD6B148E130E34985EF03733980A7480C4
2.3.1.0
x64—364E5D98D4D134BD54DD25C22ED2CA2F4883F8BC3ED6502BEE0C151E3436D30C
2.3.0.0
x64—690533CF5C2591EF571A3037AA4C205C8E75860EF3F56927BF3A98ACF7198485
2.2.0.0
x64—0AB15984223E84B2AA17BE4A5A63B8097F006A74A281968CDDC60F85F2149438
2.1.1.0
x64—AFDC8673E26C22D9733D5239CB0D550FBF57D060ADDB97CD2158B146E5E7B385
x86—3C38B5907B3A2051894F86E2B5736888BBDA401E9945EFA5011723EAA68AA94D
2.1.0.0
x64—721B10446D3C4C177AD823FBA9EC999FA062AF12F431453D9ED56B6326C58F48
x86—E6F05C1B1B7095D21B82B904658B281315CDA79E897F229EB3D72BF3BD019188
2.0.1.0
x64—A45B2E2341EC75FEFE724B9A2633AA272C6C98262C4BB90AAB5A575800A8B308
x86—C39740717FE096343D6E1185DF19B74D195CD15180343F9CE2D21F5A290DC8EC
2.0.0.0
x64—FAAD881EF4996853E75359B5BE52087B289D8C06F420AEC3FCB4D7A4E4A994F5
x86—C8B2FFF23874F46B06EEDA35EBA7B1ED49FC963D7B9CC144DB4B43E8893C8C26