ferrari: Redo brightness configuration and move partially to displayconfig

* Updated minimum brightness calculation from 4/2047 to 4/4095
to align with display DTSI's max level (qcom,mdss-brightness-min-level = 1,
qcom,mdss-brightness-max-level = 4095).

* Synced screenBrightnessRamp with Oplus SM8650.

* screenBrightnessMap is preferred as it supports only floating-point values.

* Calculated High Brightness Mode (HBM) transition point as 2047/(4095-4).
The transition lux is also obtained from OplusSmartBrightnessController.

* Removed some overlays so as to prefer the defaults.

* Update auto brightness overlays from stock display dumpsys under
OplusSmartBrightnessController.

Change-Id: I0b2513be866728f3ddf93f7fbe296d78d862c813
This commit is contained in:
pjgowtham 2024-11-10 13:53:46 +05:30
parent 959b6e48b3
commit 3cece27a59
2 changed files with 156 additions and 237 deletions

View File

@ -12,4 +12,40 @@
<density>560</density> <density>560</density>
</density> </density>
</densityMapping> </densityMapping>
<screenBrightnessMap interpolation="linear">
<point>
<value>0.00097680097</value>
<nits>2.0</nits>
</point>
<point>
<value>1.0</value>
<nits>800.0</nits>
</point>
</screenBrightnessMap>
<highBrightnessMode enabled="true">
<transitionPoint>0.50036665851</transitionPoint>
<minimumHdrPercentOfScreen>0.1</minimumHdrPercentOfScreen>
<minimumLux>8700</minimumLux>
<timing>
<timeWindowSecs>1800</timeWindowSecs>
<timeMaxSecs>300</timeMaxSecs>
<timeMinSecs>60</timeMinSecs>
</timing>
<sdrHdrRatioMap>
<point>
<sdrNits>2.000</sdrNits>
<hdrRatio>8.000</hdrRatio>
</point>
<point>
<sdrNits>500.000</sdrNits>
<hdrRatio>1.5</hdrRatio>
</point>
</sdrHdrRatioMap>
</highBrightnessMode>
<screenBrightnessRampFastDecrease>0.06</screenBrightnessRampFastDecrease>
<screenBrightnessRampFastIncrease>0.06</screenBrightnessRampFastIncrease>
<screenBrightnessRampSlowDecrease>0.04</screenBrightnessRampSlowDecrease>
<screenBrightnessRampSlowIncrease>0.04</screenBrightnessRampSlowIncrease>
<screenBrightnessRampIncreaseMaxMillis>3000</screenBrightnessRampIncreaseMaxMillis>
<screenBrightnessRampDecreaseMaxMillis>3000</screenBrightnessRampDecreaseMaxMillis>
</displayConfiguration> </displayConfiguration>

View File

@ -87,51 +87,63 @@
Must be overridden in platform specific overlays --> Must be overridden in platform specific overlays -->
<integer-array name="config_autoBrightnessLevels"> <integer-array name="config_autoBrightnessLevels">
<item>1</item> <item>2</item>
<item>4</item> <item>4</item>
<item>12</item> <item>6</item>
<item>8</item>
<item>10</item>
<item>15</item>
<item>20</item> <item>20</item>
<item>28</item> <item>25</item>
<item>47</item> <item>30</item>
<item>63</item> <item>35</item>
<item>86</item> <item>40</item>
<item>150</item> <item>45</item>
<item>50</item>
<item>55</item>
<item>60</item>
<item>65</item>
<item>70</item>
<item>75</item>
<item>80</item>
<item>95</item>
<item>100</item>
<item>120</item>
<item>140</item>
<item>160</item>
<item>180</item>
<item>200</item>
<item>220</item> <item>220</item>
<item>270</item> <item>240</item>
<item>260</item>
<item>280</item>
<item>300</item>
<item>320</item>
<item>340</item>
<item>360</item> <item>360</item>
<item>380</item>
<item>400</item>
<item>420</item> <item>420</item>
<item>510</item> <item>440</item>
<item>620</item> <item>460</item>
<item>1000</item> <item>480</item>
<item>500</item>
<item>700</item>
<item>900</item>
<item>1100</item>
<item>1300</item>
<item>1500</item>
<item>1700</item>
<item>1900</item>
<item>2000</item> <item>2000</item>
<item>2500</item>
<item>2800</item>
<item>3100</item> <item>3100</item>
<item>3988</item> <item>3400</item>
<item>5018</item> <item>3700</item>
<item>6232</item> <item>4000</item>
<item>7648</item> <item>4500</item>
<item>9280</item> <item>5000</item>
<item>11146</item>
<item>13261</item>
<item>15640</item>
<item>18302</item>
<item>21260</item>
<item>24532</item>
<item>28133</item>
<item>32080</item>
<item>36388</item>
<item>41073</item>
<item>46153</item>
<item>51642</item>
<item>63912</item>
<item>78015</item>
<item>94076</item>
<item>112226</item>
<item>132592</item>
<item>155302</item>
<item>180486</item>
<item>208271</item>
<item>223180</item>
<item>255108</item>
</integer-array> </integer-array>
<!-- Array of desired screen brightness in nits corresponding to the lux values <!-- Array of desired screen brightness in nits corresponding to the lux values
@ -148,210 +160,80 @@
array. The brightness values must be non-negative and non-decreasing. This must be array. The brightness values must be non-negative and non-decreasing. This must be
overridden in platform specific overlays --> overridden in platform specific overlays -->
<array name="config_autoBrightnessDisplayValuesNits"> <array name="config_autoBrightnessDisplayValuesNits">
<item>2.0487</item> <item>2.094286</item>
<item>4.8394</item> <item>3.0</item>
<item>15.2619</item> <item>5.0</item>
<item>33</item> <item>10.0</item>
<item>49</item> <item>15.0</item>
<item>62.95</item> <item>22.0</item>
<item>76.46</item> <item>40.0</item>
<item>84.38</item> <item>60.0</item>
<item>89.51</item> <item>75.0</item>
<item>100.34</item> <item>80.0</item>
<item>109.48</item> <item>82.0</item>
<item>115</item> <item>82.0</item>
<item>123.86</item> <item>82.0</item>
<item>129.18</item> <item>83.0</item>
<item>138.07</item> <item>83.0</item>
<item>148.62</item> <item>83.0</item>
<item>175.84</item> <item>84.0</item>
<item>234.9</item> <item>84.0</item>
<item>279</item> <item>85.0</item>
<item>300</item> <item>85.0</item>
<item>320</item> <item>86.0</item>
<item>340</item> <item>86.0</item>
<item>360</item> <item>87.0</item>
<item>380</item> <item>89.0</item>
<item>400</item> <item>95.0</item>
<item>420</item> <item>100.0</item>
<item>440</item> <item>105.0</item>
<item>460</item> <item>110.0</item>
<item>480</item> <item>115.0</item>
<item>500</item> <item>120.0</item>
<item>520</item> <item>122.0</item>
<item>540</item> <item>123.0</item>
<item>560</item> <item>124.0</item>
<item>580</item> <item>126.0</item>
<item>600</item> <item>127.0</item>
<item>620</item> <item>128.0</item>
<item>660</item> <item>129.0</item>
<item>700</item> <item>130.0</item>
<item>740</item> <item>131.0</item>
<item>780</item> <item>132.0</item>
<item>820</item> <item>134.0</item>
<item>860</item> <item>136.0</item>
<item>900</item> <item>137.0</item>
<item>940</item> <item>157.0</item>
<item>960</item> <item>180.0</item>
<item>1000</item> <item>205.0</item>
<item>226.0</item>
<item>246.0</item>
<item>264.0</item>
<item>273.0</item>
<item>310.0</item>
<item>340.0</item>
<item>362.0</item>
<item>380.0</item>
<item>400.0</item>
<item>420.0</item>
<item>450.0</item>
<item>502.0</item>
</array> </array>
<!-- An array of floats describing the screen brightness in nits corresponding to the backlight
values in the config_screenBrightnessBacklight array. On OLED displays these values
should be measured with an all white image while the display is in the fully on state.
Note that this value should *not* reflect the maximum brightness value for any high
brightness modes but only the maximum brightness value obtainable in a sustainable manner.
This array should be equal in size to config_screenBrightnessBacklight -->
<array name="config_screenBrightnessNits">
<item>0.0</item>
<item>2.87</item>
<item>2.92</item>
<item>3.1</item>
<item>3.57</item>
<item>4.25</item>
<item>5.17</item>
<item>6.25</item>
<item>7.46</item>
<item>9.01</item>
<item>10.72</item>
<item>12.79</item>
<item>14.79</item>
<item>17.25</item>
<item>20.09</item>
<item>22.73</item>
<item>25.75</item>
<item>29.04</item>
<item>32.47</item>
<item>36.59</item>
<item>40.5</item>
<item>44.76</item>
<item>49.59</item>
<item>54.28</item>
<item>58.76</item>
<item>63.89</item>
<item>69.43</item>
<item>75.25</item>
<item>81.14</item>
<item>87.62</item>
<item>94.04</item>
<item>98.43</item>
<item>105.66</item>
<item>113.0</item>
<item>121.22</item>
<item>129.54</item>
<item>136.8</item>
<item>146.37</item>
<item>154.61</item>
<item>163.9</item>
<item>174.21</item>
<item>182.27</item>
<item>194.45</item>
<item>205.89</item>
<item>215.12</item>
<item>228.27</item>
<item>238.21</item>
<item>250.34</item>
<item>263.42</item>
<item>273.78</item>
<item>287.67</item>
<item>300.67</item>
<item>313.06</item>
<item>327.17</item>
<item>340.72</item>
<item>354.25</item>
<item>368.99</item>
<item>383.17</item>
<item>398.86</item>
<item>415.52</item>
<item>431.63</item>
<item>448.22</item>
<item>459.04</item>
<item>482.52</item>
<item>498.77</item>
</array>
<!-- An array describing the screen's backlight values corresponding to the brightness
values in the config_screenBrightnessNits array.
This array should be equal in size to config_screenBrightnessBacklight. -->
<integer-array name="config_screenBrightnessBacklight">
<item>0</item>
<item>4</item>
<item>8</item>
<item>12</item>
<item>16</item>
<item>20</item>
<item>24</item>
<item>28</item>
<item>32</item>
<item>36</item>
<item>40</item>
<item>44</item>
<item>48</item>
<item>52</item>
<item>56</item>
<item>60</item>
<item>64</item>
<item>68</item>
<item>72</item>
<item>76</item>
<item>80</item>
<item>84</item>
<item>88</item>
<item>92</item>
<item>96</item>
<item>100</item>
<item>104</item>
<item>108</item>
<item>112</item>
<item>116</item>
<item>120</item>
<item>123</item>
<item>127</item>
<item>131</item>
<item>135</item>
<item>139</item>
<item>143</item>
<item>147</item>
<item>151</item>
<item>155</item>
<item>159</item>
<item>163</item>
<item>167</item>
<item>171</item>
<item>175</item>
<item>179</item>
<item>183</item>
<item>187</item>
<item>191</item>
<item>195</item>
<item>199</item>
<item>203</item>
<item>207</item>
<item>211</item>
<item>215</item>
<item>219</item>
<item>223</item>
<item>227</item>
<item>231</item>
<item>235</item>
<item>239</item>
<item>243</item>
<item>246</item>
<item>251</item>
<item>255</item>
</integer-array>
<!-- Screen brightness used to dim the screen when the user activity <!-- Screen brightness used to dim the screen when the user activity
timeout expires. May be less than the minimum allowed brightness setting timeout expires. May be less than the minimum allowed brightness setting
that can be set by the user. --> that can be set by the user. -->
<integer name="config_screenBrightnessDim">6</integer> <item type="dimen" name="config_screenBrightnessDimFloat">0.00097680097</item>
<!-- Screen brightness used to dim the screen while dozing in a very low power state.
May be less than the minimum allowed brightness setting
that can be set by the user. -->
<item type="dimen" name="config_screenBrightnessDozeFloat">0.00097680097</item>
<!-- Default screen brightness setting set. <!-- Default screen brightness setting set.
-2 is invalid so setting will resort to int value specified above. -2 is invalid so setting will resort to int value specified above.
Must be in the range specified by minimum and maximum. --> Must be in the range specified by minimum and maximum. -->
<item type="dimen" name="config_screenBrightnessSettingDefaultFloat">0.45882353</item> <item type="dimen" name="config_screenBrightnessSettingDefaultFloat">0.25006110975</item>
<!-- Maximum screen brightness allowed by the power manager. <!-- Maximum screen brightness allowed by the power manager.
-2 is invalid so setting will resort to int value specified above. -2 is invalid so setting will resort to int value specified above.
@ -363,7 +245,11 @@
-2 is invalid so setting will resort to int value specified above. -2 is invalid so setting will resort to int value specified above.
Set this to 0.0 to allow screen to go to minimal brightness. Set this to 0.0 to allow screen to go to minimal brightness.
The user is forbidden from setting the brightness below this level. --> The user is forbidden from setting the brightness below this level. -->
<item type="dimen" name="config_screenBrightnessSettingMinimumFloat">0.001954079</item> <item type="dimen" name="config_screenBrightnessSettingMinimumFloat">0.00097680097</item>
<!-- The maximum range of gamma adjustment possible using the screen
auto-brightness adjustment setting. -->
<fraction name="config_autoBrightnessAdjustmentMaxGamma">100%</fraction>
<!-- Stability requirements in milliseconds for accepting a new brightness level. This is used <!-- Stability requirements in milliseconds for accepting a new brightness level. This is used
for debouncing the light sensor. Different constants are used to debounce the light sensor for debouncing the light sensor. Different constants are used to debounce the light sensor
@ -373,9 +259,6 @@
<integer name="config_autoBrightnessBrighteningLightDebounce">1500</integer> <integer name="config_autoBrightnessBrighteningLightDebounce">1500</integer>
<integer name="config_autoBrightnessDarkeningLightDebounce">1500</integer> <integer name="config_autoBrightnessDarkeningLightDebounce">1500</integer>
<!-- Light sensor event rate in milliseconds for automatic brightness control. -->
<integer name="config_autoBrightnessLightSensorRate">200</integer>
<!-- Minimum color temperature, in Kelvin, supported by display white balance. --> <!-- Minimum color temperature, in Kelvin, supported by display white balance. -->
<integer name="config_displayWhiteBalanceColorTemperatureMin">5000</integer> <integer name="config_displayWhiteBalanceColorTemperatureMin">5000</integer>