Merge "Added display device config for default refresh rates in the hbm mode" into tm-qpr-dev am: 8f3fe87ace

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/21296038

Change-Id: Ib79ad6b5d04cd4221c62c51447f592d7eb5459c5
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Rupesh Bansal
2023-02-13 06:03:20 +00:00
committed by Automerger Merge Worker
4 changed files with 53 additions and 4 deletions

View File

@@ -137,6 +137,8 @@ import javax.xml.datatype.DatatypeConfigurationException;
* <refreshRate> * <refreshRate>
* <lowerBlockingZoneConfigs> * <lowerBlockingZoneConfigs>
* <defaultRefreshRate>75</defaultRefreshRate> * <defaultRefreshRate>75</defaultRefreshRate>
* <defaultRefreshRateInHbmHdr>75</defaultRefreshRateInHbmHdr>
* <defaultRefreshRateInHbmSunlight>75</defaultRefreshRateInHbmSunlight>
* <blockingZoneThreshold> * <blockingZoneThreshold>
* <displayBrightnessPoint> * <displayBrightnessPoint>
* <lux>50</lux> * <lux>50</lux>
@@ -404,6 +406,7 @@ public class DisplayDeviceConfig {
private static final long STABLE_FLAG = 1L << 62; private static final long STABLE_FLAG = 1L << 62;
private static final int DEFAULT_PEAK_REFRESH_RATE = 0; private static final int DEFAULT_PEAK_REFRESH_RATE = 0;
private static final int DEFAULT_REFRESH_RATE = 60; private static final int DEFAULT_REFRESH_RATE = 60;
private static final int DEFAULT_REFRESH_RATE_IN_HBM = 0;
private static final int DEFAULT_LOW_REFRESH_RATE = 60; private static final int DEFAULT_LOW_REFRESH_RATE = 60;
private static final int DEFAULT_HIGH_REFRESH_RATE = 0; private static final int DEFAULT_HIGH_REFRESH_RATE = 0;
private static final int[] DEFAULT_BRIGHTNESS_THRESHOLDS = new int[]{}; private static final int[] DEFAULT_BRIGHTNESS_THRESHOLDS = new int[]{};
@@ -584,6 +587,15 @@ public class DisplayDeviceConfig {
*/ */
private int mDefaultRefreshRate = DEFAULT_REFRESH_RATE; private int mDefaultRefreshRate = DEFAULT_REFRESH_RATE;
/**
* Default refresh rate while the device has high brightness mode enabled for HDR.
*/
private int mDefaultRefreshRateInHbmHdr = DEFAULT_REFRESH_RATE_IN_HBM;
/**
* Default refresh rate while the device has high brightness mode enabled for Sunlight.
*/
private int mDefaultRefreshRateInHbmSunlight = DEFAULT_REFRESH_RATE_IN_HBM;
/** /**
* Default refresh rate in the high zone defined by brightness and ambient thresholds. * Default refresh rate in the high zone defined by brightness and ambient thresholds.
* If non-positive, then the refresh rate is unchanged even if thresholds are configured. * If non-positive, then the refresh rate is unchanged even if thresholds are configured.
@@ -1324,8 +1336,7 @@ public class DisplayDeviceConfig {
* @return Default refresh rate while the device has high brightness mode enabled for HDR. * @return Default refresh rate while the device has high brightness mode enabled for HDR.
*/ */
public int getDefaultRefreshRateInHbmHdr() { public int getDefaultRefreshRateInHbmHdr() {
return mContext.getResources().getInteger( return mDefaultRefreshRateInHbmHdr;
R.integer.config_defaultRefreshRateInHbmHdr);
} }
/** /**
@@ -1333,8 +1344,7 @@ public class DisplayDeviceConfig {
* high lux. * high lux.
*/ */
public int getDefaultRefreshRateInHbmSunlight() { public int getDefaultRefreshRateInHbmSunlight() {
return mContext.getResources().getInteger( return mDefaultRefreshRateInHbmSunlight;
R.integer.config_defaultRefreshRateInHbmSunlight);
} }
/** /**
@@ -1490,6 +1500,8 @@ public class DisplayDeviceConfig {
+ ", mDefaultHighBlockingZoneRefreshRate= " + mDefaultHighBlockingZoneRefreshRate + ", mDefaultHighBlockingZoneRefreshRate= " + mDefaultHighBlockingZoneRefreshRate
+ ", mDefaultPeakRefreshRate= " + mDefaultPeakRefreshRate + ", mDefaultPeakRefreshRate= " + mDefaultPeakRefreshRate
+ ", mDefaultRefreshRate= " + mDefaultRefreshRate + ", mDefaultRefreshRate= " + mDefaultRefreshRate
+ ", mDefaultRefreshRateInHbmHdr= " + mDefaultRefreshRateInHbmHdr
+ ", mDefaultRefreshRateInHbmSunlight= " + mDefaultRefreshRateInHbmSunlight
+ ", mLowDisplayBrightnessThresholds= " + ", mLowDisplayBrightnessThresholds= "
+ Arrays.toString(mLowDisplayBrightnessThresholds) + Arrays.toString(mLowDisplayBrightnessThresholds)
+ ", mLowAmbientBrightnessThresholds= " + ", mLowAmbientBrightnessThresholds= "
@@ -1805,6 +1817,7 @@ public class DisplayDeviceConfig {
: refreshRateConfigs.getHigherBlockingZoneConfigs(); : refreshRateConfigs.getHigherBlockingZoneConfigs();
loadPeakDefaultRefreshRate(refreshRateConfigs); loadPeakDefaultRefreshRate(refreshRateConfigs);
loadDefaultRefreshRate(refreshRateConfigs); loadDefaultRefreshRate(refreshRateConfigs);
loadDefaultRefreshRateInHbm(refreshRateConfigs);
loadLowerRefreshRateBlockingZones(lowerBlockingZoneConfig); loadLowerRefreshRateBlockingZones(lowerBlockingZoneConfig);
loadHigherRefreshRateBlockingZones(higherBlockingZoneConfig); loadHigherRefreshRateBlockingZones(higherBlockingZoneConfig);
} }
@@ -1829,6 +1842,26 @@ public class DisplayDeviceConfig {
} }
} }
private void loadDefaultRefreshRateInHbm(RefreshRateConfigs refreshRateConfigs) {
if (refreshRateConfigs != null
&& refreshRateConfigs.getDefaultRefreshRateInHbmHdr() != null) {
mDefaultRefreshRateInHbmHdr = refreshRateConfigs.getDefaultRefreshRateInHbmHdr()
.intValue();
} else {
mDefaultRefreshRateInHbmHdr = mContext.getResources().getInteger(
R.integer.config_defaultRefreshRateInHbmHdr);
}
if (refreshRateConfigs != null
&& refreshRateConfigs.getDefaultRefreshRateInHbmSunlight() != null) {
mDefaultRefreshRateInHbmSunlight =
refreshRateConfigs.getDefaultRefreshRateInHbmSunlight().intValue();
} else {
mDefaultRefreshRateInHbmSunlight = mContext.getResources().getInteger(
R.integer.config_defaultRefreshRateInHbmSunlight);
}
}
/** /**
* Loads the refresh rate configurations pertaining to the upper blocking zones. * Loads the refresh rate configurations pertaining to the upper blocking zones.
*/ */

View File

@@ -472,6 +472,14 @@
minOccurs="0" maxOccurs="1"> minOccurs="0" maxOccurs="1">
<xs:annotation name="final"/> <xs:annotation name="final"/>
</xs:element> </xs:element>
<xs:element name="defaultRefreshRateInHbmHdr" type="xs:nonNegativeInteger"
minOccurs="0" maxOccurs="1">
<xs:annotation name="final"/>
</xs:element>
<xs:element name="defaultRefreshRateInHbmSunlight" type="xs:nonNegativeInteger"
minOccurs="0" maxOccurs="1">
<xs:annotation name="final"/>
</xs:element>
<xs:element name="lowerBlockingZoneConfigs" type="blockingZoneConfig" <xs:element name="lowerBlockingZoneConfigs" type="blockingZoneConfig"
minOccurs="0" maxOccurs="1"> minOccurs="0" maxOccurs="1">
<xs:annotation name="final"/> <xs:annotation name="final"/>

View File

@@ -188,10 +188,14 @@ package com.android.server.display.config {
ctor public RefreshRateConfigs(); ctor public RefreshRateConfigs();
method public final java.math.BigInteger getDefaultPeakRefreshRate(); method public final java.math.BigInteger getDefaultPeakRefreshRate();
method public final java.math.BigInteger getDefaultRefreshRate(); method public final java.math.BigInteger getDefaultRefreshRate();
method public final java.math.BigInteger getDefaultRefreshRateInHbmHdr();
method public final java.math.BigInteger getDefaultRefreshRateInHbmSunlight();
method public final com.android.server.display.config.BlockingZoneConfig getHigherBlockingZoneConfigs(); method public final com.android.server.display.config.BlockingZoneConfig getHigherBlockingZoneConfigs();
method public final com.android.server.display.config.BlockingZoneConfig getLowerBlockingZoneConfigs(); method public final com.android.server.display.config.BlockingZoneConfig getLowerBlockingZoneConfigs();
method public final void setDefaultPeakRefreshRate(java.math.BigInteger); method public final void setDefaultPeakRefreshRate(java.math.BigInteger);
method public final void setDefaultRefreshRate(java.math.BigInteger); method public final void setDefaultRefreshRate(java.math.BigInteger);
method public final void setDefaultRefreshRateInHbmHdr(java.math.BigInteger);
method public final void setDefaultRefreshRateInHbmSunlight(java.math.BigInteger);
method public final void setHigherBlockingZoneConfigs(com.android.server.display.config.BlockingZoneConfig); method public final void setHigherBlockingZoneConfigs(com.android.server.display.config.BlockingZoneConfig);
method public final void setLowerBlockingZoneConfigs(com.android.server.display.config.BlockingZoneConfig); method public final void setLowerBlockingZoneConfigs(com.android.server.display.config.BlockingZoneConfig);
} }

View File

@@ -158,6 +158,8 @@ public final class DisplayDeviceConfigTest {
assertEquals(90, mDisplayDeviceConfig.getDefaultHighBlockingZoneRefreshRate()); assertEquals(90, mDisplayDeviceConfig.getDefaultHighBlockingZoneRefreshRate());
assertEquals(85, mDisplayDeviceConfig.getDefaultPeakRefreshRate()); assertEquals(85, mDisplayDeviceConfig.getDefaultPeakRefreshRate());
assertEquals(45, mDisplayDeviceConfig.getDefaultRefreshRate()); assertEquals(45, mDisplayDeviceConfig.getDefaultRefreshRate());
assertEquals(82, mDisplayDeviceConfig.getDefaultRefreshRateInHbmHdr());
assertEquals(83, mDisplayDeviceConfig.getDefaultRefreshRateInHbmSunlight());
assertArrayEquals(new int[]{45, 55}, assertArrayEquals(new int[]{45, 55},
mDisplayDeviceConfig.getLowDisplayBrightnessThresholds()); mDisplayDeviceConfig.getLowDisplayBrightnessThresholds());
assertArrayEquals(new int[]{50, 60}, assertArrayEquals(new int[]{50, 60},
@@ -465,6 +467,8 @@ public final class DisplayDeviceConfigTest {
+ "<refreshRate>\n" + "<refreshRate>\n"
+ "<defaultRefreshRate>45</defaultRefreshRate>\n" + "<defaultRefreshRate>45</defaultRefreshRate>\n"
+ "<defaultPeakRefreshRate>85</defaultPeakRefreshRate>\n" + "<defaultPeakRefreshRate>85</defaultPeakRefreshRate>\n"
+ "<defaultRefreshRateInHbmHdr>82</defaultRefreshRateInHbmHdr>\n"
+ "<defaultRefreshRateInHbmSunlight>83</defaultRefreshRateInHbmSunlight>\n"
+ "<lowerBlockingZoneConfigs>\n" + "<lowerBlockingZoneConfigs>\n"
+ "<defaultRefreshRate>75</defaultRefreshRate>\n" + "<defaultRefreshRate>75</defaultRefreshRate>\n"
+ "<blockingZoneThreshold>\n" + "<blockingZoneThreshold>\n"