Skip to content
Compare
Choose a tag to compare

Potentially-breaking changes for tools/scripts:

  • PresentMon no longer attempts to elevate privilege by default. The -dont_restart_as_admin command line argument is deprecated and a new -restart_as_admin argument is added which enables the previous behaviour (#96).
  • -simple, -verbose, and -include_mixed_reality command line arguments are deprecated, and should be replaced with -no_track_display, -track_debug, and -track_mixed_reality respectively, all with the same behaviours.
  • The output CSV format has changed:
    • The columns have been re-ordered.
    • The column headers for time-based metrics starting in "Ms..." have been renamed to "ms...".
    • Floating point values are no longer restricted to three decimal point precision.

New features:

  • Support was added for multi-plane VSync DPC, ensuring that all planes are properly completed and distinguishing between "Hardware: Independent Flip" and "Hardware Composed: Independent Flip". (#98, #100)

Bug fixes:

  • Fixed an issue for some captures (depending on the timing of initialization) and for certain presentation paths, where the display and rendering metrics were attributed to the wrong Present() call leading to incorrect latency calculations.
  • Fixed a rare hang caused by a particular present sequence (#95)
  • Various improvements in identifying, reporting, and freeing memory for frames whose tracking has failed (e.g., due to a missed ETW event).
  • Fixed an issue where presents from APIs other than D3D9 or DXGI would not be tracked when -simple or -no_track_display were used

Known issues:

  • Reported 'SyncInterval' is the value provided by the application, but may have been modified by the driver (#99)
  • Beta WMR support may not generate any events (#77) or PresentMon crash (#61)
Compare
Choose a tag to compare

New features:

  • Various present tracking improvements
  • Build support for ARM and ARM64 on Windows
  • Added -qpc_time_s command line argument (#67)
  • Added -terminate_existing command line argument (#81)

Bug fixes:

  • HSync flips are now considered tearing (#70)
  • Recursive spawning of PresentMon processes when privilege elevation fails (#94)
  • Average latency calculation improved

Known issues:

  • Beta WMR support may not generate any events (#77) or PresentMon crash (#61)
Compare
Choose a tag to compare

Bug fixes:

  • Fixes regression in 1.5.0 where D3D9 present's would cast swapchain address to 32-bits and print a size error to stderr (#66)

Known issues:

  • PresentMon crashes when capturing Mixed Reality application on Windows 19H1 (#61)
Compare
Choose a tag to compare

Bug fixes:

  • Fixes regression in 1.5.0 where debug log was written to console instead of swapchain information (#65)

Known issues:

  • PresentMon crashes when capturing Mixed Reality application on Windows 19H1 (#61)
  • D3D9 present's swapchain address is cast to 32-bits and a size error is printed to stderr (#66)
Compare
Choose a tag to compare

New features:

  • Added -qpc_time command line argument which outputs present time as performance counter value (#63)

Bug fixes:

  • Improved usage documentation (#60)
  • Improved performance, especially during realtime collection (#32)
  • Improved stability on Win7 (#44, #52, #57)

Known issues:

  • PresentMon crashes when capturing Mixed Reality application on Windows 19H1 (#61)
  • Debug log is written to console instead of swapchain information (#65)
  • D3D9 present's swapchain address is cast to 32-bits and a size error is printed to stderr (#66)
Compare
Choose a tag to compare

New features:

  • Run multiple PresentMon processes at the same time (#51)
  • Process ETL files captured on different OS versions
  • Support for HSync on hybrid systems
  • Updates for Windows Mixed Reality on Windows 10 RS4
  • Mode to write CSV data to STDOUT (#62)

Bug fixes:

  • Fix issue where killing PresentMon can lead to a crash (#52)
Compare
Choose a tag to compare

Bug fixes:

  • Fixes a condition where tracking of DWM-composed frames can be lost, leading to frames being incorrectly reported as dropped.

Known issues:

  • Lost packet error reported while capturing DirectX12 Battlefield (#22)
  • System slowdown and/or OS lock may occur on some Windows7 PCs (#44, #52)
  • Only one PresentMon process may run at a time (#51)
  • Very rarely, a frame may be reported with an impossibly-large display duration (#49)
Compare
Choose a tag to compare

New features:

  • Initial support for Windows Mixed Reality (-include_mixed_reality) to trace events related to application-compositor synchronization and late-stage reprojection work.
  • More process targeting options:
    • White-list by process name (repeat -process_name argument)
    • Black-list by process name (-exclude)
    • -process_id and -process_name are no longer exclusive
  • Ability to output separate CSV files for each captured process

Bug fixes:

  • Fix issue where -terminate_proc_on_exit didn't work with -etl_file input
Compare
Choose a tag to compare

Bug fixes:

  • Fix hang (infinite loop) during shut down that was introduced in 1.2.0.
Compare
Choose a tag to compare

Note: A critical bug was introduced in this version, please use 1.2.1 (or greater).

New features:

  • Support for capture and analysis on Microsoft Windows 7.
  • Add a '-verbose' command line flag which adds new CSV columns:
    • 'WasBatched' indicating whether the frame was submitted by the driver on a different thread than the app.
    • 'DwmNotified' indicating whether the desktop compositor was notified about the frame.
  • Refactor code base to make collection and analysis components available in a library.
  • Added a script to prune unwanted processes from the collected CSV file.

Bug fixes:

  • Fix missing error message when an error occurs during privilege escalation.
  • Fix issue where DWM child window composition events were being missed.

Known issues:

  • PresentMon hangs during shut down