Skip to content

Commit 532147b

Browse files
committed
increase the rate at which we dispatch events.
Previously, the input dispatch rate was capped by default to 55. This worked fine for systems with a refresh rate of 55 or lower. But on devices with a higher frame rate (such as stingray at 60 fps), we do not receive events as fast as the rendering system wants to redraw the frames, so we would occasionally miss events between frames, resulting in a visual stutter during drag operations where the dragged object would essentially stay still for a frame. This fix increases the default rate to 90, or 1.5 times the highest typical refresh rate of our devices. Change-Id: Id8622185b3da93f9f6505157d2e6f3f33e36bd04
1 parent eae6c99 commit 532147b

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

services/java/com/android/server/wm/InputManager.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -675,7 +675,13 @@ public int getMaxEventsPerSecond() {
675675
} catch (NumberFormatException e) {
676676
}
677677
if (result < 1) {
678-
result = 55;
678+
// This number equates to the refresh rate * 1.5. The rate should be at least
679+
// equal to the screen refresh rate. We increase the rate by 50% to compensate for
680+
// the discontinuity between the actual rate that events come in at (they do
681+
// not necessarily come in constantly and are not handled synchronously).
682+
// Ideally, we would use Display.getRefreshRate(), but as this does not necessarily
683+
// return a sensible result, we use '60' as our default assumed refresh rate.
684+
result = 90;
679685
}
680686
return result;
681687
}

0 commit comments

Comments
 (0)