Potentially-breaking changes for tools/scripts:
- PresentMon no longer attempts to elevate privilege by default. The
-dont_restart_as_admincommand line argument is deprecated and a new-restart_as_adminargument is added which enables the previous behaviour (#96). -simple,-verbose, and-include_mixed_realitycommand line arguments are deprecated, and should be replaced with-no_track_display,-track_debug, and-track_mixed_realityrespectively, 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
-simpleor-no_track_displaywere used
Known issues:
New features:
- Various present tracking improvements
- Build support for ARM and ARM64 on Windows
- Added
-qpc_time_scommand line argument (#67) - Added
-terminate_existingcommand 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:
Bug fixes:
- Fixes regression in 1.5.0 where debug log was written to console instead of swapchain information (#65)
Known issues:
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)
Bug fixes:
- Fixes a condition where tracking of DWM-composed frames can be lost, leading to frames being incorrectly reported as dropped.
Known issues:
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
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