Human Benchmark implemented in C++ DirectX9

Everything about latency. Tips, testing methods, mouse lag, display lag, game engine lag, network lag, whole input lag chain, VSYNC OFF vs VSYNC ON, and more! Input Lag Articles on Blur Busters.
O_O
Posts: 19
Joined: 26 Oct 2020, 06:19

Re: Human Benchmark implemented in C++ DirectX9

Post by O_O » 31 Oct 2020, 19:44

Cool project. I started something similar a while back with OpenGL and was to have option for a stationary bull's eye target or one which would change position each turn and show accuracy also but unlike you I never finished it.

So looks like I'm a on average 200ms eye to finger mouse button clicker on a 60Hz display with 6ms click latency mouse. Strange thing is I can sometimes feel the slowness of my finger to respond, or maybe I'm just imagining it :)

Also tried some computer aided results by screenshots and color recognition. The results seemed oddly inconsistent and fastest I've seen is 2ms when taking into account the 6ms latency of the mouse button.

Example
Image

Averages improved with higher display refresh rate.

User avatar
xeos
Posts: 40
Joined: 12 Jul 2018, 14:54
Contact:

Re: Human Benchmark implemented in C++ DirectX9

Post by xeos » 31 Oct 2020, 20:24

how did you did you automate the clicking?
Measure display input lag the cheap way or the best way (IMHO, but I'm biased).

O_O
Posts: 19
Joined: 26 Oct 2020, 06:19

Re: Human Benchmark implemented in C++ DirectX9

Post by O_O » 01 Nov 2020, 18:21

A transistor and a couple of wires to the mouse switch PCB connections, triggered by PC I/O.

Strange thing if VSync is set on with 60Hz monitor

Image

From just to a few milliseconds with VSync off to a whopping ~78ms (mouse click latency removed). Almost 5 frames!

User avatar
xeos
Posts: 40
Joined: 12 Jul 2018, 14:54
Contact:

Re: Human Benchmark implemented in C++ DirectX9

Post by xeos » 02 Nov 2020, 11:35

O_O wrote:
01 Nov 2020, 18:21
A transistor and a couple of wires to the mouse switch PCB connections, triggered by PC I/O.

Strange thing if VSync is set on with 60Hz monitor

Image

From just to a few milliseconds with VSync off to a whopping ~78ms (mouse click latency removed). Almost 5 frames!
That's shocking. Much more consistent though, makes me wonder what was going on with the variability in the non-vsync tests. can we trust this app?
Measure display input lag the cheap way or the best way (IMHO, but I'm biased).

O_O
Posts: 19
Joined: 26 Oct 2020, 06:19

Re: Human Benchmark implemented in C++ DirectX9

Post by O_O » 02 Nov 2020, 19:55

TBH I'm more concerned with the synchronized tests. I get much the same results if I test with OpenGL but might be something to do with my system or testing. Would be good to see if others experience a big difference (~70ms) when running with VSync off against a set refresh of 60Hz and VSync on for the benchmark. I'm running 20H2 if that makes any difference?

Edit: seems there's a 5 frame penalty when VSync is enabled except when max frame rate is enabled too and less than VSync. So 60Hz 83ms penalty, 120Hz 42ms, 240Hz 21ms! At least that's how it seems to work on my system.

User avatar
xeos
Posts: 40
Joined: 12 Jul 2018, 14:54
Contact:

Re: Human Benchmark implemented in C++ DirectX9

Post by xeos » 03 Nov 2020, 15:20

O_O wrote:
02 Nov 2020, 19:55

Edit: seems there's a 5 frame penalty when VSync is enabled except when max frame rate is enabled too and less than VSync. So 60Hz 83ms penalty, 120Hz 42ms, 240Hz 21ms! At least that's how it seems to work on my system.
Although I have no DirectX experience, I have to wonder if that's an artifact of how this particular code initializes the display and not a general finding on input lag, as 5 frames seems way to long; at most graphical app triple buffer, but I would expect most games to only double buffer.
Measure display input lag the cheap way or the best way (IMHO, but I'm biased).

O_O
Posts: 19
Joined: 26 Oct 2020, 06:19

Re: Human Benchmark implemented in C++ DirectX9

Post by O_O » 04 Nov 2020, 23:52

xeos wrote:
03 Nov 2020, 15:20
5 frames seems way to long;
Exactly the point.

W7 ran with VSync and 25Hz refresh (40ms) showed 5 to 7 frames.
Image

Stranger still, a real human test of W7 with VSync enabled and 60Hz refresh and what happened to mouse click latency?
Image

And W7 with VSync off
Image

Well nobody else is reporting this so maybe it's just me :D

User avatar
MaxTendency
Posts: 58
Joined: 22 Jun 2020, 01:47

Re: Human Benchmark implemented in C++ DirectX9

Post by MaxTendency » 05 Nov 2020, 00:59

O_O wrote:
04 Nov 2020, 23:52
Image

From the looks of it, seems like left side is w10 and right side being w7. Are both tested with 60hz no vsync? Mind answering which w10 version was used, also any specific optimizations you did on the OSes? The results seem interesting for sure. :lol:

O_O
Posts: 19
Joined: 26 Oct 2020, 06:19

Re: Human Benchmark implemented in C++ DirectX9

Post by O_O » 05 Nov 2020, 03:43

W7 was run with 480Hz refresh while IIRC the W10 20H2 result was with 60Hz refresh, no specific optimizations. Generally click averages are lower with higher refresh but maybe I should really run those tests with sub 1ms click latency.

Edit: Mouse click latency ~0.3ms, W10 20H2
Image

Post Reply