Dropped and repeated inputs with Vsync

Dropped and repeated inputs with Vsync

When VSync is turned on, I am experiencing dropped inputs. As an example, I am walking forward then input jump. I do not jump. Additionally, I can be buffering a forward input during a recovery, but if I drop the input just before the recovery is completed, it will cause my character to continue walking forward with no inputs from me. The continue walking forward is completely repeatable. The dropped inputs require specific timing.

Steps to reproduce:

  1. Go into training (I used DeGrey).
  2. Try several inputs and combinations of inputs. Sometimes an input will not register such as jump or throw.
  3. As DeGrey, do fA and hold forward jump during recovery. Just before he recovers, let go of all inputs. He will start walking forward continuously with no input given.

Expected Results:
No dropped inputs and no repeated inputs without any given by the player.

Actual Results:
Some inputs are not registered, and some inputs are given even though the player does not press any buttons.



Game Version:
v 0.15956

System Information:
Windows 10 Pro
Intel Core i7-5960X
128 GB RAM
NVIDIA GeForce GTX1080

Some new information:

Inputs only seem to drop when there is more than one input at a time. It will always read at least one of the inputs. Repeating inputs seem to happen when there is a dropped input and all inputs are ceased by the time it starts repeating. The windows for dropped inputs seem to have a certain “rhythm” to it. My system information was sent in a DM to Thelo.

The dropped inputs don’t always happen. It may go for quite a while without a dropped input. But, once a dropped input happens, I will notice dropped inputs for quite a while. It’s unknown whether I’m not noticing the dropped inputs because they will not drop, or it just happens to be the timing is different enough from my actual inputs that they won’t drop.

This bug is now 100% repeatable. I personally tested it on two separate PCs. If you have vsync on with an Xbone controller on Windows (haven’t tested on Linux yet and don’t have access to Mac) you will have dropped/repeated inputs. I have tried to recreate the situation on both PCs with keyboard and a Hori Pad S but failed to do so. Here is my method:

Go to training mode (I used DeGrey and Geiger), have vsync on, full screen, 1920x1080, high graphic quality, antialiasing 2x, briefly press diagonal forward or diagonal back. Make sure it is a brief press and let go of the controller. Sometimes the character will only jump straight up or walk forward. Furthermore, when this happens, there is a very high chance that the character will repeatedly either jump or walk without any further input from the player. If you press a different movement key on the keyboard, it will not affect the repeated input. Thus, if the character is walking forward and you press up or jump, the character will jump but continue to walk forward. If you input the opposite direction, it will temporarily negate the input. However, as soon as you let go of the input on the keyboard, the game will re-register the old input from the controller and continue to walk.

I have repeated this bug with two separate Xbone controllers. One is a week old, the other is a year old.

Additionally, Ness1228 has also experienced dropped inputs from an Xbone controller. He has also stated that he reinstalled controller drivers twice, but turning off vsync was the only solution.

Thanks for this report, I have reproduced it. It seems to be a Unity bug that is unique to Xbox One controllers.

As far as I’ve puzzled out, it involves releasing a d-pad diagonal quickly and “cleanly”, releasing both (e.g.) up and right at the same time. When I do that, for any Unity project (like Fantasy Strike, but not for other, non-Unity test methods I’ve tried), one of the axes (here, up or right) will get stuck on that last non-zero value. I can get a similar bug to happen for the Xbox One’s LT and RT analog triggers.

I’ve reported this to Unity, hopefully they can fix whatever is going wrong on their side.

Oh, wow. That’s interesting! Thanks for tracking down the bug. If it gets fixed by Unity and the engine is able to be updated. I’ll go back and test the controller again to see if it’s related to “dropped” inputs as well.