mouse lag in video games since updating to win 8.1

Anonymous
2013-10-18T21:31:23+00:00

hi all ive noticed that in some games in win 8.1 there is serious mouse lag . this makes some games almost unplayable now. this is a serious issue especially since many gamers upgraded for the benefits ingames but now cant play do to the mouse lag issues.

for me its in call of duty 4 aka modern warfare 1. there are numerous articles now about this issue and with certain games .

http://fr.reddit.com/r/windows/comments/1oor43/windows\_81\_warning\_for\_gamers\_issues\_with/  

http://www.pcgamesn.com/windows-81-mouse-lag-reportedly-renders-some-pc-games-close-unplayable

as you can see this isnt a isolated issue and needs fixing asap. especially with many big titles just coming in the next few weeks on pc !

how can this be sent higher up so this issue is resolved ? thanks.

Windows for home | Previous Windows versions | Gaming

Locked Question. This question was migrated from the Microsoft Support Community. You can vote on whether it's helpful, but you can't add comments or replies or follow the question.

0 comments No comments
Answer accepted by question author
Anonymous
2013-11-08T18:50:37+00:00

We have issued a fix to address most of the “mouse lag” issues associated with gaming in Windows 8.1, which vary based on the game, input methods used, etc. More details on the issue and available resolutions are available via KB 2908279, and affected customers can go to the Microsoft Download Center to install the update

Was this answer helpful?

2 people found this answer helpful.
0 comments No comments

170 additional answers

Sort by: Most helpful
  1. Anonymous
    2013-10-31T12:40:13+00:00

    Thank you for your detailed feedback.  There is some information that is **posted here**that provides and update and also includes some possible workarounds.

    Was this answer helpful?

    0 comments No comments
  2. Anonymous
    2013-10-31T12:17:38+00:00
    • Everyone click "Me too" on the above post by Mark Cranness!!!

    Was this answer helpful?

    0 comments No comments
  3. Anonymous
    2013-10-31T07:56:28+00:00

    Mark thanks for your work on this problem :)

    I hope MS will honor this and fix it already ^^

    Was this answer helpful?

    0 comments No comments
  4. Anonymous
    2013-10-31T06:00:16+00:00

    Microsoft people : Thank you for your attention.

    I think I know at least some of what is causing this lag problem.

    In brief summary : Windows 8.1 includes optimizations to help with power consumption (battery life) in the area of timer coalescing or event coalescing.

    (This is where processing of certain events is delayed and events are grouped together (coalesced) and processed at the same time, to avoid waking up the CPU for each event.)

    In Windows 8.1, WM_MOUSEMOVE events are being delayed and coalesced, and also the associated updating of the Windows mouse pointer is being delayed.

    This delay is causing many games to lag (or is probably part of that lag).

    A way to turn off this behaviour while running games is needed.

    To see this happening, some software tools are useful:

    • MouseMovementRecorder.exe (V 1.11)

    https://docs.google.com/uc?id=0B_PnkMGDlD5nN25WWWhiaUF0VzA&export=download

    This is a console utility that waits for mouse input using DirectInput, and also monitors mouse pointer movement by calling Windows function GetCursorPos, and displays how well the two match up.

    (Imagine it is a video game, instrumented to record and trace mouse inputs, but without the video game!)

    • MouseRate.exe

    http://www.softpedia.com/get/System/System-Miscellaneous/Mouse-Rate-Checker.shtml

    This waits for WM_MOUSEMOVE events (over its window), measures the time difference between successive events, and converts that (1/time) into a mouse polling Rate in Hz.

    • dimr.exe / dx_mouse_timer_dialog.exe

    http://andrewblock.net/2008/10/27/improve-mouse-responseaccuracy-by-changing-the-usb-polling-rate/

    This waits for DirectInput mouse events and displays the delay between events and the corresponding 1/time mouse polling rate in Hz.

    Also, a mouse that can be configured with a 250 or 500 or 1000Hz polling rate allows the problem to be seen.

    Method: The tools above are run on Windows 7 or 8 and again on Windows 8.1 and differences show the lag/event coalescing problem.

    People are reporting that games that use Raw Input or DirectInput to read mouse movement are not having the lag problem.

    Games that don't use Raw Input or DirectInput ARE having lag or other problems (I read reports of extreme jumping in position for some games).

    (Background on mouse input: http://msdn.microsoft.com/en-us/library/ee418864(VS.85).aspx)

    Games that don't use Raw Input or DirectInput will process WM_MOUSEMOVE messages, or will call GetCursorPos() frequently, and calculate mouse movement based on changes in the pointer position.

    Any delay or lag in sending WM_MOUSEMOVE messages, or updating the pointer position, will cause these games problems.

    (If the user or the game has the Control Panel "Enhance pointer precision" checkbox ON, then the mouse acceleration added by "Enhance pointer precision" might combine with jittery lag to produce VERY jittery jumps?)

    Test: Run dx_mouse_timer_dialog.exe on Windows 7 or 8.

    It will report numbers close to the configured mouse polling rate, 125Hz or 250 or 500 or 1000Hz.

    Run dx_mouse_timer_dialog.exe on Windows 8.1

    It will also report numbers close to the configured mouse polling rate, 125Hz or 250 or 500 or 1000Hz.

    Conclusion : No indication of a problem when using DirectInput to read the mouse.

    Test: Run MouseRate.exe on Windows 7 or 8.

    It will show numbers close to the configured mouse polling rate, 125Hz or 250 or 500 or 1000Hz.

    Run MouseRate.exe on Windows 8.1

    It will show lower Hz numbers.

    For a mouse with a 125Hz polling rate, I've seen MouseRate.exe show ~125Hz in some cases, and ~62Hz in others.

    For a mouse with 1000Hz polling rate, people report that MouseRate.exe will only ever show 200Hz or lower.

    Conclusion: Raw mouse input is being delayed and coalesced before being sent to programs that read WM_MOUSEMOVE messages.

    Test:

    Run MouseMovementRecorder.exe ("MMR") (V 1.11) on Windows 7 or 8.

    Note: For the output of MMR to be clear, do this first:

    • In Control Panel, set the mouse Pointer speed slider to the middle 6/11 position.
    • In Control Panel, clear the "Enhance pointer position" checkbox to off.

    (Alternatively, while MMR is running and has focus, press the 'A' key until the EnPtPr column shows 'Off', and press the '6' key to set 6/11.)

    MMR will show in the FREQUENCY column numbers close to the configured mouse polling rate, 125Hz or 250 or 500 or 1000Hz.

    Mouse movement numbers in the left column will generally be the same as Pointer movement numbers in the middle column and will display with normal white text on a black background.

    Press 'S' key = "Show catchup delay".

    MMR attempts to match-up mouse movement seen with pointer movement seen.

    It waits for mouse movement using DirectInput, and as soon as it is notified of mouse movement, usually (Windows 7 & 8) the pointer position has already been updated and the pointer movement matches the mouse movement.

    Sometimes the pointer position has not been updated yet, so MMR goes into a busy loop [with Sleep(0) in the loop] waiting for the pointer position to change.  When it does change, MMR shows how long it waited for, to the left of the EnPtPr column. It looks like so:

    For extra tracing : Press 'E' key then '+' key several times.

    The extra detail will show that pointer movement is seen very close to mouse movement.

    (Note: Often the pointer has already moved, and so a small positive delay between mouse and pointer doesn't always mean the pointer moved after the mouse, but just that MMR reads the mouse first, then reads the pointer, and a small amount of time passes between those two reads.)

    Conclusion: DirectInput mouse input and GetCursorPos() pointer position changes happen in close synchronisation, and at the same rate.

    Test:

    Run MouseMovementRecorder.exe ("MMR") (V 1.11) on Windows 8.1

    Note: For the output of MMR to be clear, do this first:

    • In Control Panel, set the mouse Pointer speed slider to the middle 6/11 position.
    • In Control Panel, clear the "Enhance pointer position" checkbox to off.

    (Alternatively, while MMR is running and has focus, press the 'A' key until the EnPtPr column shows 'Off', and press the '6' key to set 6/11.)

    MMR will show a mess of unmatched numbers, with red and green backgrounds, because MMR is trying to match up the mouse movement and the pointer movement, but is not succeeding.

    If using a mouse with a high polling rate, there will be red when the pointer moves (at the lower WM_MOUSEMOVE / MouseRate.exe rate), and green when the mouse moves (at the actual mouse polling rate).

    (AgentRuby on October 26, 2013 posted an example of the above, page 8 of this thread, the pic with the bird of prey.)

    Another example: http://i.imgur.com/tXkc13I.png

    Conclusion: The GetCursorPos() update rate is slower and delayed from the DirectInput update rate.

    Make MMR try harder by pressing the '+' key until the red and green mostly disappears, and then once or twice again for luck (the "Max catchup delay" may be 16000 or higher.)

    ("Jiggle" the mouse when moving, because smooth movement might cause MMR to matchup the wrong mouse and pointer movement : A "jiggle" should break any wrong match and correctly synchronise the matching.

    Ignore the FREQUENCY column when using the '+' command.)

    Press 'E' to show extra detail.

    Ignore blocks that show red or green, because MMR couldn't match up those blocks.

    Here is a sample:

    Note the second mouse movement of -8x-3 and the delayed by 3556µs (3.5ms) pointer movement.

    Note the bottom 1x0 mouse movement (@+1) and delayed by 5928µs pointer movement (@+5929).

    Note the bottom 3x2 mouse movement (@+5876) and the delayed by 10,470µs pointer movement (@+16346).

    I understand total input to screen lag needs to be something around 20000µs / 20ms before it is noticeable, but this sometimes 10000µs+ lag can't be helping.

    Conclusion: Windows 8.1 laggy and jittery mouse input when not using DirectInput (or Raw Input).

    Sudden jumps:

    Some gamers are reporting sudden extreme jumps when moving the mouse.

    See here: http://us.battle.net/wow/en/forum/topic/10102720358

    I can't exactly see how a sometimes 10000µs+ lag could cause that, but one theory is:

    The lag is seen to be variable, so perhaps sometimes:

    - There is extreme lag, with many many mouse movements coalesced into a single pointer movement, combined with:

    • Control panel "Enhance pointer precision" acceleration, and/or
    • In game mouse acceleration?

    For example:

    • Mouse movement of 20 polling intervals with +2 counts each interval.

    Windows 7 : Windows control panel "Enhance pointer precision" acceleration for a +2 movement is ~ × 0.62 (depends on direction of movement...), with no coalescing and no jitter, total mouse pointer movement is 20 × 2 × 0.62 = 24 or 25 pixels.

    Windows 8.1 : Suppose there was a long jittery lag and all 40 movement counts were coalesced into a single pointer movement (corresponds to a 20ms = 20000µs lag with a 1000Hz mouse, not too out of bounds given I've seen 10000µs as above).

    Windows control panel "Enhance pointer precision" acceleration for a +40 movement is ~ × 2.21, total mouse movement is 40 × 2.21 = 88 or 89 pixels.

    That example isn't convincing, but perhaps add some non-frame-rate based in-game mouse acceleration, and the number might get out of hand?

    (In the most extreme case, the largest possible difference in "Enhance pointer precision" acceleration between single mouse movements and those same movements coalesced into a single bunch is ~ × 4.7)

    Was this answer helpful?

    0 comments No comments