PresentMon is a set of tools to capture and analyze the high-level performance characteristics of graphics applications on Windows. PresentMon traces key performance metrics such as the CPU, GPU, and Display frame durations and latencies; and works across different graphics API such as DirectX, OpenGL, and Vulkan, different hardware configurations, and for both desktop and UWP applications.
What's new in 2.6.0.0
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. …