Page 1 of 4

PresentMon: measure both frame throughput (fps) and latency

Posted: 14 Jul 2019, 01:20
by Vleeswolf
Hi Busters!

I haven't seen PresentMon mentioned here. It's a tool, originally by Intel, now open source, which tracks frames as they are presented by a game. It records frame statistics such as frames presented per second, frames displayed per second, but also latency of frames from present to display. Basically, it can easily show you the input lag component often used to motivate framecapping below the refresh rate (see the gsync article on this site). On a game like Dark Souls III for instance, in it's basic 60hz config, has a 40-50ms latency due to (edit) GPU work and frames being queued after present. If you cap using RTSS to 58hz the latency drops to around 4-5ms. It's pretty useful to see this in action, without having to measure using a high-speed camera. Of course the camera approach will still give you a more complete picture of the input lag.

It's easy to get and run, just download the .exe released at their Github site (https://github.com/GameTechDev/PresentMon/releases) and run it from a command line window. If you run with no parameters it will track all processes and generate lots of csv files with output. If you don't want those csv''s, just use the "-no_csv" flag. Best then to put the window on a second monitor so you can see the frame throughput and latency of the game in real-time.

Useful tool in the toolbox, I think.

Re: PresentMon: measure both frame throughput (fps) and late

Posted: 14 Jul 2019, 03:17
by crossjeremiah
I tested with dolphin. I hope this seems accurate .
60hz(VT2810)
Scanline Sync 1x(1169) + Frame rate limit + Vsync On (0.01) = 16.81MS
Scanline Sync 1x(1169) + No Frame Limit + Vsync off = 0.25ms!!!!!

Re: PresentMon: measure both frame throughput (fps) and late

Posted: 14 Jul 2019, 03:25
by Vleeswolf
This a great blog post on the topic:
https://jackmin.home.blog/2018/12/14/sw ... t-latency/

Re: PresentMon: measure both frame throughput (fps) and late

Posted: 14 Jul 2019, 06:57
by crossjeremiah
It's pretty good to see if youre getting the reduced input lag with the current scanline sync value.

Re: PresentMon: measure both frame throughput (fps) and late

Posted: 14 Jul 2019, 09:52
by 1000WATT
crossjeremiah wrote:
60hz (xl2430t) = 21ms with scanline sync + vsync (0.01) method
60hz (aw2518h) = 16.82ms with scanline sync + vsync (0.01) method
Where do you get these numbers?

Re: PresentMon: measure both frame throughput (fps) and late

Posted: 14 Jul 2019, 11:33
by crossjeremiah
I tested vsync and scanline syncs and different refresh rates in dolphin

Re: PresentMon: measure both frame throughput (fps) and late

Posted: 14 Jul 2019, 12:30
by 1000WATT
crossjeremiah wrote:I tested vsync and scanline syncs and different refresh rates in dolphin
MsBetweenPresents MsBetweenDisplayChange MsUntilRenderComplete MsUntilDisplayed :?: what exactly?

Re: PresentMon: measure both frame throughput (fps) and late

Posted: 14 Jul 2019, 15:59
by crossjeremiah
i just ran the program when i ran dolphin and it told me the latency

Re: PresentMon: measure both frame throughput (fps) and late

Posted: 14 Jul 2019, 17:23
by Vleeswolf
In the window you run PresentMon from it will output stats for all active swap chains. For example:
presentmon.png
presentmon.png (6.91 KiB) Viewed 10368 times
The number in red is what crossjeremiah is probably reporting. In the CSV, this is the MsUntilDisplayed column.

Re: PresentMon: measure both frame throughput (fps) and late

Posted: 14 Jul 2019, 18:57
by Chief Blur Buster
Great latency analysis tool!