Basic framework of the UI toolkit variable refresh rate project
This CL includes two major changes for variable refresh rate (VRR) project:
1. Migrated the TouchBoost logic from SurfaceFlinger to
ViewRootImpl. When users touch (MotionEvent.ACTION_DOWN) the screen or press and move (MotionEvent.ACTION_MOVE), we increase the frame rate / refresh rate to the maximum value to offer users a smooth user experience. The frame rate will then be lowered after a certain period.
2. Built the frame rate voting mechanism. This enables Views to vote for
their preferred frame rate. Those votes will be aggregated in
ViewRootImpl to determine a final one. The preferred frame rate of a
View is determined based on its size.
The implementation is gated by a Trunk Stable flag.
Bug: 278731105
Bug: 278731091
Bug: 293505054
Bug: 296459487
Bug: 293513140
Bug: 293513467
Test: atest ViewRootImplTest / ViewTest
Change-Id: I78a8f327eda8f2a32180cba7b93e939fa3a658ff
4 files changed