PresentMon is Intel's benchmark tool that provides metrics for GPU usage, CPU usage, frame times, and temperatures. It incorporates a new measurement called 'GPU Busy' to offer users a clearer understanding of system bottlenecks.

Features

Configurable Overlay with Real-time Graphing

Bring your game performance to life through a fully customizable overlay with real-time performance charting that supports multi-line graphs and histograms. Now you can see real-time raw numbers, percentiles, rolling-window averages, and more to understand your gaming experience.

Discover Performance Bottlenecks

Innovative new "GPU Busy" metric shows real time CPU + GPU balance and how the resources in your machine are being utilized, allowing you to better evaluate computing bottlenecks in your games.

Combined GPU Telemetry and Performance Capture

Intel PresentMon combines performance and GPU telemetry data into a single overlay and capture utility, allowing you to better evaluate your system during, or after, your gaming session.

Multi-vendor Support and Open Source

Intel PresentMon works with Intel Arc graphics cards and Intel Core processors but with other hardware vendor options as well. And because PresentMon continues to be an open-source utility, it can be integrated into third party applications.

Broad API Support

Intel PresentMon supports DirectX 12, DirectX 11, DirectX 9, OpenGL, and Vulkan application APIs. Both Windows 11 and Windows 10 are supported.

Powerful Command Line Options for Power Users

For power users, reviewers, or anyone else that wants to take advantage of it, Intel PresentMon supports command line functionality for batch testing or automation.

What's New

New Features

  • The majority of metrics are changed to use the time that the CPU started working on a frame as the reference point instead of the present() call, with values that are more aligned to measuring the quality of graphics applications (e.g., latency and duration of interaction and displayed frames). See README-ConsoleApplication.md for more details.
  • Processes with unknown name are now reported as instead of .
  • Capture application CSV now reports NA (Not Available) in columns for unavailable metrics instead of 0.
  • Overlay / Capture application now hides any metrics that are not available on the system.
  • Added explicit 1%, 5%, and 10% percentile statistics (to the existing 99%, 95%, and 90%). Previously, selecting 99%ile for metrics where a lower value is better (such as frame time) would automatically convert to the 1%ile statistic. Now, no context-dependent conversion is done and whatever statistic the user selects is displayed.
  • Added a non-zero average statistic which only averages non-zero data points. This is useful for metrics where zero denotes "no data" rather than a zero value (such as the click-to-photon latency metric).
  • Added histogram plots.
  • Client APIs:
    • New Dynamic query composition API: clients now specify which metrics/stats they are using, and only the necessary data processing is performed. This replaces the previous behavior where all metric combinations were calculated on each polling call, regardless of whether they were necessary.
    • New Introspection API: clients can now enumerate metrics at runtime to populate UIs with options, names, and descriptions. Also enables clients to be forward-compatible with newer service builds exposing new metrics.
    • PresentData: changed PresentStopTime to TimeInPresent where PresentStopTime = TimInPresent == 0 ? 0 : PresentStartTime + TimeInPresent

Bug Fixes

  • Fixed crash caused by resetting preferences
  • Fixed graph rendering errors when sampling rate was high and/or graph contained many data plots
  • Disallow editing for built-in loadout presets
  • Fixed issue where autoscaling settings was affecting the wrong graph
  • Fixed issue where independent data display window would repeatedly appear above the control UI making it difficult to interact with the application
  • Fixed overlay UI misalignment in readout widgets caused by very small values
  • Loadout files are now saved with .json file extension by default