PresentMonLauncher - DX12/Vulkan Benchmarking

Published Date
31 - Jan - 2017
| Last Updated
06 - Feb - 2017
PresentMonLauncher - DX12/Vulkan Benchmarking

A quick introduction to me; I’m Andrew from TechteamGB. I run a technology-based Youtube channel that covers the gaming end of PC hardware and have reviewed some fantastic bits of kit including Intel’s Skylake and Broadwell-E CPUs. If you are interested in hardware, come take a look.

Onto the application. Intel published a great program called PresentMon, which allows for ETW based FPS and Frame time monitoring, especially for benchmarking DX12/UWP/Vulkan games, that applications like FRAPS don’t support. It’s a command line interface so can be tricky for less technically inclined people to handle, especially as you need to CD to the right directory, then type out the right arguments including either the full name or process ID of the game you wanted to capture. As I said, a bit of a pain for some.

Because of this and my own troubles with certain settings when trying to benchmark and RX 480 and GTX 1060 in DOOM with Vulkan, I decided to write a relatively simple application to help this. The program is written in C# and acts as a launcher for PresentMon, allowing you to install one application (to C:\PresentMonLauncher) and easily select the application you want to capture from a list, add a timer and delay in seconds as opposed to milliseconds, have a checkbox for Simple mode and No CSV mode, plus an area to add any other arguments you need – like changing where the CSV output file goes and is called.

I initially sent this program to Jim from AdoredTV who suggested a few improvements, then was driven to learn Python in a day to write the included bencher program! This program, that’s built into the launcher, allows you to load your results file in and shows the minimum, maximum and average FPS, as well as allows you to output another CSV file which includes a single column of easily graphable frame times. We’ve now changed quite a few things already, including normalising the results in the .csv file, adding new features to the launcher like a better auto-naming system, and reworking the bencher application so it’s part of the C# launcher too and working as a Windows form application, not command line. There are a lot of updates happening, so make sure to keep an eye on the Github for the latest version!

That’s pretty much it in a nutshell, it’s a launcher for Intel’s PresentMon application that makes using it easier, and extracting useful/usable information from the results easy too.

For more such intel resources and tools from Intel on Game, please visit the Intel® Game Developer Zone