haydn: Define thresholds for switching refresh rate

* The display uses different gamma curves for different refresh rates.It's hard for panel vendor to tune the curves to have exact same brightness for different refresh rate (lazy), rr can switch so fast that makes a weird really annoying flicker, like a CRT, so we need to set a threshold for avoiding that flicker.

* Also, increasing rr switching timers, even if they made the CRT bug to be reduced, slowly scrolling on GMaps while Smooth Display is enabled, led to a weird gamma switching to a green tint, so we need to tune that too for avoiding that shifting.

Signed-off-by: 1xtAsh <ashraykrsingh321@gmail.com>
This commit is contained in:
chemusqui1 2023-01-27 20:32:56 +08:00 committed by DigiGoon
parent c48138a0b3
commit 2119eea9bc

View file

@ -340,4 +340,21 @@
<item>haydn</item>
<item>haydnpro</item>
</string-array>
<!-- The display uses different gamma curves for different refresh rates. It's hard for panel
vendor to tune the curves to have exact same brightness for different refresh rate. So
flicker could be observed at switch time. The issue is worse at the gamma lower end.
In addition, human eyes are more sensitive to the flicker at darker environment.
To prevent flicker, we only support higher refresh rates if the display brightness is above
a threshold. And the darker environment could have higher threshold.
For example, no higher refresh rate if
display brightness <= disp0 && ambient brightness <= amb0
|| display brightness <= disp1 && ambient brightness <= amb1
-->
<integer-array name="config_brightnessThresholdsOfPeakRefreshRate">
<item>74</item> <!-- 77% UI brightness -->
</integer-array>
<integer-array name="config_ambientThresholdsOfPeakRefreshRate">
<item>63</item>
</integer-array>
</resources>