Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content
Commit f7bb69b6 authored by Shane's avatar Shane
Browse files

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
parent 80d939a4
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment