Basic framework of the UI toolkit variable refresh rate project
The original CL was reverted due to a performance issue - ag/24826019 In this CL, I use a read-only flag to avoid cauding the performance issue. See Patchset 2 and 3 for detiails. Atest UiBenchMicrobenchmark / uibench-dialoglist / uibench-invalidate are passed locally 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 / UiBenchMicrobenchmark Change-Id: If6a342eb137e0f36834d2b439997e752685f7ee2
Loading
Please register or sign in to comment