Overclock.net › Forums › Components › Mice › The first real test for measuring input lag!
New Posts  All Forums:Forum Nav:

The first real test for measuring input lag! - Page 3

post #21 of 76
After a few test using that A or B input program (first time ever using it) I get 15/25 for 4ms delay test using my crappy monitor and a Zowie AM (2300CPI @ 500Hz). Maybe if I take a few more test I will notice things more.
post #22 of 76
tongue.gif i should improve that test sometime
15/25 is statistically insignificant. as in, you can easily do as well by randomly guessing.
ofc if you keep testing, eventually you'll get a statistically significant result at some confidence level, but if you don't get >18 correct within 3 tries or so, it's pretty safe to say you can't feel it.
main
(15 items)
 
old
(14 items)
 
 
CPUMotherboardGraphicsRAM
4770k maximus vii impact nvidia gtx 970 crucial ballistix tactical 16gb 
Hard DriveCoolingOSMonitor
crucial mx100 noctua nh-c14 windows 7 ultimate sony cpd-g520 
KeyboardPowerCaseMouse
kbp v80 matias quiet silverstone sx500-lg ncase m1 v3 logitech g100s with mcu replaced by teensy2.0 
Mouse PadAudioAudio
allsop raindrop xl chord mojo hifiman re-600 
CPUMotherboardGraphicsRAM
i7 920 evga x58 sli le galaxy gtx 460 crucial something 3x1gb 
Hard DriveCoolingOSMonitor
intel 330 180gb scythe kotetsu windows 8.1 pro sony cpd-g520 
KeyboardPowerCaseMouse
logitech k120 silverstone st75f-gs nxzt h440 evga torq x5 
Mouse PadAudio
allsop raindrop mobo 
  hide details  
Reply
main
(15 items)
 
old
(14 items)
 
 
CPUMotherboardGraphicsRAM
4770k maximus vii impact nvidia gtx 970 crucial ballistix tactical 16gb 
Hard DriveCoolingOSMonitor
crucial mx100 noctua nh-c14 windows 7 ultimate sony cpd-g520 
KeyboardPowerCaseMouse
kbp v80 matias quiet silverstone sx500-lg ncase m1 v3 logitech g100s with mcu replaced by teensy2.0 
Mouse PadAudioAudio
allsop raindrop xl chord mojo hifiman re-600 
CPUMotherboardGraphicsRAM
i7 920 evga x58 sli le galaxy gtx 460 crucial something 3x1gb 
Hard DriveCoolingOSMonitor
intel 330 180gb scythe kotetsu windows 8.1 pro sony cpd-g520 
KeyboardPowerCaseMouse
logitech k120 silverstone st75f-gs nxzt h440 evga torq x5 
Mouse PadAudio
allsop raindrop mobo 
  hide details  
Reply
post #23 of 76
Quote:
Originally Posted by qsxcv View Post

tongue.gif i should improve that test sometime
15/25 is statistically insignificant. as in, you can easily do as well by randomly guessing.
ofc if you keep testing, eventually you'll get a statistically significant result at some confidence level, but if you don't get >18 correct within 3 tries or so, it's pretty safe to say you can't feel it.
I am getting 15/25 regularly at 4ms. It isn't really telling until I get more correct, but I feel like the fluctuating polling rate of the AM is messing with me.
post #24 of 76
Quote:
Originally Posted by Skylit View Post

Raw input: This is API that buffers mouse movement independent of frame rate. Traditionally, games like counter strike, early quake, ut. etc.. rendered mouse input by center grab repositioning or WM_MOUSEMOVE. Raw input in layman's terms reads information from your mouse directly (inc. polling) and translates 1:1 DPI settings to game. Mouse fix or windows settings need not apply.

Controversy over added input latency or smoothing effect reported by users: Raw input regardless of game engine will almost always buffer polled rate faster than that of the average frame rate you pull in game. There may be an “unconnected” feeling for many users as movement is no longer based on in-game fps.

can someone explain this to me?

from what i know you always have the following situation:

Code:
usb polls:----------------a--------b--------c--------d--------e--------f--------g-...
when game needs input (start of frame):-1----------------2-----------3------------4

ideally, what the game uses for mouse movement at frame 2 is c+d; at frame 3, e; at frame 4, f+g; ...

how is raw input different at all for this?
main
(15 items)
 
old
(14 items)
 
 
CPUMotherboardGraphicsRAM
4770k maximus vii impact nvidia gtx 970 crucial ballistix tactical 16gb 
Hard DriveCoolingOSMonitor
crucial mx100 noctua nh-c14 windows 7 ultimate sony cpd-g520 
KeyboardPowerCaseMouse
kbp v80 matias quiet silverstone sx500-lg ncase m1 v3 logitech g100s with mcu replaced by teensy2.0 
Mouse PadAudioAudio
allsop raindrop xl chord mojo hifiman re-600 
CPUMotherboardGraphicsRAM
i7 920 evga x58 sli le galaxy gtx 460 crucial something 3x1gb 
Hard DriveCoolingOSMonitor
intel 330 180gb scythe kotetsu windows 8.1 pro sony cpd-g520 
KeyboardPowerCaseMouse
logitech k120 silverstone st75f-gs nxzt h440 evga torq x5 
Mouse PadAudio
allsop raindrop mobo 
  hide details  
Reply
main
(15 items)
 
old
(14 items)
 
 
CPUMotherboardGraphicsRAM
4770k maximus vii impact nvidia gtx 970 crucial ballistix tactical 16gb 
Hard DriveCoolingOSMonitor
crucial mx100 noctua nh-c14 windows 7 ultimate sony cpd-g520 
KeyboardPowerCaseMouse
kbp v80 matias quiet silverstone sx500-lg ncase m1 v3 logitech g100s with mcu replaced by teensy2.0 
Mouse PadAudioAudio
allsop raindrop xl chord mojo hifiman re-600 
CPUMotherboardGraphicsRAM
i7 920 evga x58 sli le galaxy gtx 460 crucial something 3x1gb 
Hard DriveCoolingOSMonitor
intel 330 180gb scythe kotetsu windows 8.1 pro sony cpd-g520 
KeyboardPowerCaseMouse
logitech k120 silverstone st75f-gs nxzt h440 evga torq x5 
Mouse PadAudio
allsop raindrop mobo 
  hide details  
Reply
post #25 of 76
I just skimmed this, and I don't see anything about raw mouse input having anything to do with framerate. Not sure where skylit got that idea.
post #26 of 76
Looking forward for tests, great setup.

So if i see correctly, raw input adds about 0.5ms lag? Im on mobile right now, everything is crushed together...
Edited by treach - 12/9/14 at 3:24pm
post #27 of 76
Quote:
Originally Posted by qsxcv View Post

Quote:
Originally Posted by Skylit View Post

Raw input: This is API that buffers mouse movement independent of frame rate. Traditionally, games like counter strike, early quake, ut. etc.. rendered mouse input by center grab repositioning or WM_MOUSEMOVE. Raw input in layman's terms reads information from your mouse directly (inc. polling) and translates 1:1 DPI settings to game. Mouse fix or windows settings need not apply.

Controversy over added input latency or smoothing effect reported by users: Raw input regardless of game engine will almost always buffer polled rate faster than that of the average frame rate you pull in game. There may be an “unconnected” feeling for many users as movement is no longer based on in-game fps.

can someone explain this to me?

from what i know you always have the following situation:

Code:
usb polls:----------------a--------b--------c--------d--------e--------f--------g-...
when game needs input (start of frame):-1----------------2-----------3------------4

ideally, what the game uses for mouse movement at frame 2 is c+d; at frame 3, e; at frame 4, f+g; ...

how is raw input different at all for this?

I don't understand it. It's not really any different, I think. The logic in the program seems to be the same. You still have a "window" that receives an event, except it's raw data instead of data about a mouse pointer.

In practice, if you think about how C code for a Windows program looks like, it really looks very similar in both cases. There is a loop that calls a function to ask Windows for new messages and will dispatch it to the "WndProc()" function of the window you registered. Inside your WndProc() there's a large switch statement dealing with events. The difference between normal and raw will be you using a different case statement to look at a different event. There's the WM_MOUSEMOVE event for the normal mouse pointer, and there's a WM_INPUT event for raw data.

So in that ASCII art you drew, you might want two threads in your program. The one dealing with your window will call GetMessage() of Windows and will block and then get woken up at points a b c d e f g. Then you'll do that c+d and f+g stuff you imagined yourself. The other thread hitting the 1 2 3 4 points sets things to zero.

If you don't do a separate thread, you can look for messages with PeekMessage() instead of that blocking GetMessage() whenever you've finished painting your frames. What I understood will happen is that you'll see that you have a whole bunch of them instead of just one. You'll still get to do the c+d and f+g stuff.

Perhaps the quote is really talking about DirectInput where it says "raw input"? DirectInput is not supposed to be used any more in the future as far as I know, is deprecated by Microsoft. DirectInput created a separate thread that dealt with the message stuff and window events for you.

Something else that's interesting is that the polling for the USB mouse is invisible to the CPU and OS. This is really done by the USB host controller. The controller will then only send an interrupt signal to the CPU if it has new data to present, so from the point of view of the CPU there is never any waiting like what you normally imagine if you hear "polling".
Edited by deepor - 12/9/14 at 4:17pm
post #28 of 76

vsync on, 60hz*

raw data in the google doc
main
(15 items)
 
old
(14 items)
 
 
CPUMotherboardGraphicsRAM
4770k maximus vii impact nvidia gtx 970 crucial ballistix tactical 16gb 
Hard DriveCoolingOSMonitor
crucial mx100 noctua nh-c14 windows 7 ultimate sony cpd-g520 
KeyboardPowerCaseMouse
kbp v80 matias quiet silverstone sx500-lg ncase m1 v3 logitech g100s with mcu replaced by teensy2.0 
Mouse PadAudioAudio
allsop raindrop xl chord mojo hifiman re-600 
CPUMotherboardGraphicsRAM
i7 920 evga x58 sli le galaxy gtx 460 crucial something 3x1gb 
Hard DriveCoolingOSMonitor
intel 330 180gb scythe kotetsu windows 8.1 pro sony cpd-g520 
KeyboardPowerCaseMouse
logitech k120 silverstone st75f-gs nxzt h440 evga torq x5 
Mouse PadAudio
allsop raindrop mobo 
  hide details  
Reply
main
(15 items)
 
old
(14 items)
 
 
CPUMotherboardGraphicsRAM
4770k maximus vii impact nvidia gtx 970 crucial ballistix tactical 16gb 
Hard DriveCoolingOSMonitor
crucial mx100 noctua nh-c14 windows 7 ultimate sony cpd-g520 
KeyboardPowerCaseMouse
kbp v80 matias quiet silverstone sx500-lg ncase m1 v3 logitech g100s with mcu replaced by teensy2.0 
Mouse PadAudioAudio
allsop raindrop xl chord mojo hifiman re-600 
CPUMotherboardGraphicsRAM
i7 920 evga x58 sli le galaxy gtx 460 crucial something 3x1gb 
Hard DriveCoolingOSMonitor
intel 330 180gb scythe kotetsu windows 8.1 pro sony cpd-g520 
KeyboardPowerCaseMouse
logitech k120 silverstone st75f-gs nxzt h440 evga torq x5 
Mouse PadAudio
allsop raindrop mobo 
  hide details  
Reply
post #29 of 76
Quote:
Originally Posted by qsxcv View Post


raw data in the google doc

What is your conclusion from these results? Either CS:GO doesn't honor prerender setting with vsync off and uses the same value every time, probably either 3 or 1? But with Vsync on, prerender of 1 clearly makes a difference. These results make it look like either the CS:GO engine is just bad in general, or your measuring device gives erratic results. No matter which case it is, I think the most logical next step is to test prerender/flipque on a different engine to try and isolate what the issue is.

League of Legends is free to download and uses a very lightweight dx9 engine. That might be a decent candidate to test. I can't think of many other light weight engines in modern games except something like King's Bounty, which is a single player strategy game.

You may also find differences in graphics behavior between rendering in DX11 and DX9. I have a feeling DX11 rendering might be laggier in general.

edit: since you got the same results each time with vsync off, did you actually reboot each time after changing the flipque/prerender setting in control panel before running the test?

edit 2: what driver are you testing with? You should be using 344.16 imo, or 344.11 if using a kepler or earlier card. Also, what is Nvidia scaling set to? "Display - No Scaling" or at default? What about the other Nvidia control panel settings? Are things like AA and threaded optimization forced off?
Edited by r0ach - 12/12/14 at 12:27am
post #30 of 76
Quote:
Originally Posted by r0ach View Post

Either CS:GO doesn't honor prerender setting with vsync off and uses the same value every time, probably either 3 or 1?
doesnt honor with vsync off.
look at the time axis. the spread is between 2ms and 19ms which means there is no prerendering at all. for example, at 60hz, if there is one additional frame buffered you'd see values between 19ms and (19 + 16.7)ms.

but it's gonna be interesting to look at vsync on + prerendered 0 in an older nvidia driver (i think 295 had the option for 0 on my gtx 460)

it may be worth reading how i'm doing all of this tongue.gif basically i can try any game where, it's possible that when you move the mouse, the entire screen goes from dark to light instantly. for instance in csgo i go to a dark part of the map and stare at a dark region of the ground. then i jack up the sensitivity so that when the arduino moves the cursor up by 100 counts, the player stares at the bright sky. is something similar in lol?

anyway i've made my own dx9 program for testing this... all it does is draw a completely black screen which turns white when the mouse moves up. ill add some framerate cap to it and see how it responds to prerendered...
Edited by qsxcv - 12/12/14 at 12:33am
main
(15 items)
 
old
(14 items)
 
 
CPUMotherboardGraphicsRAM
4770k maximus vii impact nvidia gtx 970 crucial ballistix tactical 16gb 
Hard DriveCoolingOSMonitor
crucial mx100 noctua nh-c14 windows 7 ultimate sony cpd-g520 
KeyboardPowerCaseMouse
kbp v80 matias quiet silverstone sx500-lg ncase m1 v3 logitech g100s with mcu replaced by teensy2.0 
Mouse PadAudioAudio
allsop raindrop xl chord mojo hifiman re-600 
CPUMotherboardGraphicsRAM
i7 920 evga x58 sli le galaxy gtx 460 crucial something 3x1gb 
Hard DriveCoolingOSMonitor
intel 330 180gb scythe kotetsu windows 8.1 pro sony cpd-g520 
KeyboardPowerCaseMouse
logitech k120 silverstone st75f-gs nxzt h440 evga torq x5 
Mouse PadAudio
allsop raindrop mobo 
  hide details  
Reply
main
(15 items)
 
old
(14 items)
 
 
CPUMotherboardGraphicsRAM
4770k maximus vii impact nvidia gtx 970 crucial ballistix tactical 16gb 
Hard DriveCoolingOSMonitor
crucial mx100 noctua nh-c14 windows 7 ultimate sony cpd-g520 
KeyboardPowerCaseMouse
kbp v80 matias quiet silverstone sx500-lg ncase m1 v3 logitech g100s with mcu replaced by teensy2.0 
Mouse PadAudioAudio
allsop raindrop xl chord mojo hifiman re-600 
CPUMotherboardGraphicsRAM
i7 920 evga x58 sli le galaxy gtx 460 crucial something 3x1gb 
Hard DriveCoolingOSMonitor
intel 330 180gb scythe kotetsu windows 8.1 pro sony cpd-g520 
KeyboardPowerCaseMouse
logitech k120 silverstone st75f-gs nxzt h440 evga torq x5 
Mouse PadAudio
allsop raindrop mobo 
  hide details  
Reply
New Posts  All Forums:Forum Nav:
  Return Home
  Back to Forum: Mice
Overclock.net › Forums › Components › Mice › The first real test for measuring input lag!