Skip to content

Releases: GameTechDev/PresentMon

v2.2.0

01 Oct 13:17
Compare
Choose a tag to compare

New Features

  • Overhauled the ETW backend to reduce event latency from 1000ms => ~30ms; overlay now displays data instantly without 1 second lag
  • Added a new click-to-photon metric that only tracks mouse button events; renamed previous click-to-photon metric to "all-input-to-photon"
  • Improved input latency reporting so that input falling on dropped frames is attributed to the next displayed frame rather than being ignored
  • Enabled the client to gather log data from the service and increased log coverage, particularly at the "debug" severity level

Bug Fixes

  • Fixed column labels for summary stats file #330
  • Fixed rare crash due to a race condition #340
  • Fixed bug occurring when selecting a non-default adapter #256

2.1.1

30 Jul 04:25
Compare
Choose a tag to compare

New Features

  • Added option to have the GUI capture application launch its own instance of PresentMon Service as a child process (useful for debugging)

Bug Fixes

  • Fixed issue with duration of CSV frame capture #314
  • Fixed race condition causing loss of frame data when processing offline ETL files #313
  • Fixed issue with FrameTime metric calculation #311

2.1.0

13 Jun 05:24
Compare
Choose a tag to compare

New Features

  • Added Animation Error metric.
  • Added new logging into AppCef and Core projects.
  • Created a debug diagnostic channel.
  • Added Intel-PresentMon provider.
  • Added ULTs for PresentMonService.
  • Allow polling rate and drawing rate to vary independently.

Bug Fixes

  • Changes for Issue #238. Presented FPS X% is now displayed as X% of FPS, not frame times.
  • Changes for Issue #209. Reduced PRESENTEVENT_CIRCULAR_BUFFER_SIZE to be 1024.
  • Fix for Issue #162. Autoscale is now recovering zoom in.
  • Addressed various low impact security CVEs.

2.0.1

03 May 18:23
Compare
Choose a tag to compare

Bug Fixes

  • Fix for Issue #218. Only upgrade to child process window if it is larger than 640x480
  • Fix for Issue #223. Updated CPU telemetry code to better handle failed PDH queries.
  • Fix for Issue #226. Updated gather commands to match PMC.
  • Fix for Issue #232. fflush() after each CSV row when --output_stdout

2.0.0

03 Apr 18:45
Compare
Choose a tag to compare

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 <unknown> instead of <error>.

  • 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

Binary Assets

  • PresentMon-2.0.0-x64.exe: 64-bit console application
  • PresentMon-2.0.0-x86.exe: 32-bit console application
  • PresentMon-v2.0.msi: Intel PresentMon Installer

1.10.0

24 Feb 00:08
Compare
Choose a tag to compare

This is a release of the PresentMon console application only, in order to provide some recent bug fixes. A new version of the complete Intel PresentMon capture and overlay tools will be released in a few weeks.

New Features

  • Support for processes with non-ANSI characters in their name (#191)

Bug fixes

  • Fixed issue on NVIDIA GPUs where GPUDuration can get "stuck" at full frame time (#183)
  • Fixed present time accuracy when --date_time is used (#194)
  • Updated readme to call out supported graphics APIs (#138)

Intel PresentMon Beta 0.6

20 Oct 20:42
Compare
Choose a tag to compare
Pre-release

New Features:

  • Added ability to change background on Readouts.
  • Added additional customization options for Graphs.
  • Changed default Capture and Loadouts save location to be "Documents/PresentMon" to align with other capture tools.
  • Updated spawn location of metrics window. Inspired by issue #158.

Bug Fixes:

  • Fixed a bug where the overlay would cause some games to minimize. Fixes issue #158.
  • Fixed a bug where selecting a stale process would cause PresentMon application to turn all white.
  • Fixed a bug where WMI CPU code was not functioning correctly on non-English languages. Fixes issue #140.
  • Added support for ADL Overdrive 7 to enable GPU telemetry on AMD RX590 cards. Fixes issue #142.

1.9.2

11 Sep 23:48
Compare
Choose a tag to compare

Bug fixes

  • Fixes issue #172 (introduced in 1.9.0) where processes with shorter names could incorrectly match with -exclude and/or -process_name command line arguments. e.g., a process named "cod.exe" would be excluded when "-exclude code.exe" was used.

1.9.1

28 Aug 19:56
Compare
Choose a tag to compare

Bug fixes

  • Fixes issue #157 (introduced in 1.9.0) where PresentMon would report a process' full path when PresentMon was running as administrator and when PresentMon was started before the target application.

1.9.0

25 Aug 00:05
Compare
Choose a tag to compare

General Improvements

  • Improved process tracking, especially for short-running processes.
  • Fixed an issue where some data could be missing when --output_stdout is used.
  • Fixed an issue where dependent presents are kept after a DWM present is lost.
  • Process id is added to the CSV filename when -multi_csv is used, to avoid file collisions when multiple processes have the same name.
  • etw_list can now extract provider information from ETL files.
  • Added scripts (tools/start_etl_collection.cmd, stop_etl_collection.cmd) to collect minimal ETL files for debugging/reproducing issues.
  • Various minor performance and tracking improvements.

New Features

  • --track_gpu tracks GPU work and adds two new metrics to the CSV:
    • msUntilRenderStart: the time between the Present() call and when the GPU work for this frame started, and
    • msGPUActive: the total duration the GPU was working on this frame.
  • --track_gpu_video when used, tracks video work separately from other GPU work.
  • --track_input tracks user input and adds the msSinceInput metric to the CSV which is the time between the Present() call and the earliest keyboard or mouse interaction that contributed to this frame.
  • --date_time outputs the Present() time as a date and time.

Breaking API Changes:

  • PresentEvent::QpcTime and TimeTaken have been renamed to PresentStartTime and PresentStopTime, see 094fcbc for more details.

Intel PresentMon