Added display device config for default refresh rates in the hbm mode
Bug: 264965782 Test: atest DisplayDeviceConfigTest Change-Id: Ic6c4a0a4be5c3d355bfa18e5bd164f9b39f52ac0
This commit is contained in:
@@ -154,6 +154,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>
|
||||||
@@ -429,6 +431,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[]{};
|
||||||
@@ -608,6 +611,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.
|
||||||
@@ -1348,8 +1360,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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1357,8 +1368,7 @@ public class DisplayDeviceConfig {
|
|||||||
* high lux.
|
* high lux.
|
||||||
*/
|
*/
|
||||||
public int getDefaultRefreshRateInHbmSunlight() {
|
public int getDefaultRefreshRateInHbmSunlight() {
|
||||||
return mContext.getResources().getInteger(
|
return mDefaultRefreshRateInHbmSunlight;
|
||||||
R.integer.config_defaultRefreshRateInHbmSunlight);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1540,6 +1550,8 @@ public class DisplayDeviceConfig {
|
|||||||
+ ", mDefaultPeakRefreshRate= " + mDefaultPeakRefreshRate
|
+ ", mDefaultPeakRefreshRate= " + mDefaultPeakRefreshRate
|
||||||
+ ", mDefaultRefreshRate= " + mDefaultRefreshRate
|
+ ", mDefaultRefreshRate= " + mDefaultRefreshRate
|
||||||
+ ", mRefreshRateZoneProfiles= " + mRefreshRateZoneProfiles
|
+ ", mRefreshRateZoneProfiles= " + mRefreshRateZoneProfiles
|
||||||
|
+ ", mDefaultRefreshRateInHbmHdr= " + mDefaultRefreshRateInHbmHdr
|
||||||
|
+ ", mDefaultRefreshRateInHbmSunlight= " + mDefaultRefreshRateInHbmSunlight
|
||||||
+ ", mLowDisplayBrightnessThresholds= "
|
+ ", mLowDisplayBrightnessThresholds= "
|
||||||
+ Arrays.toString(mLowDisplayBrightnessThresholds)
|
+ Arrays.toString(mLowDisplayBrightnessThresholds)
|
||||||
+ ", mLowAmbientBrightnessThresholds= "
|
+ ", mLowAmbientBrightnessThresholds= "
|
||||||
@@ -1866,6 +1878,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);
|
||||||
loadRefreshRateZoneProfiles(refreshRateConfigs);
|
loadRefreshRateZoneProfiles(refreshRateConfigs);
|
||||||
@@ -1902,7 +1915,27 @@ public class DisplayDeviceConfig {
|
|||||||
mRefreshRateZoneProfiles.put(
|
mRefreshRateZoneProfiles.put(
|
||||||
zone.getId(),
|
zone.getId(),
|
||||||
new SurfaceControl.RefreshRateRange(
|
new SurfaceControl.RefreshRateRange(
|
||||||
range.getMinimum().floatValue(), range.getMaximum().floatValue()));
|
range.getMinimum().floatValue(), range.getMaximum().floatValue()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -481,6 +481,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"/>
|
||||||
|
|||||||
@@ -192,11 +192,15 @@ 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 com.android.server.display.config.RefreshRateZoneProfiles getRefreshRateZoneProfiles();
|
method public final com.android.server.display.config.RefreshRateZoneProfiles getRefreshRateZoneProfiles();
|
||||||
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);
|
||||||
method public final void setRefreshRateZoneProfiles(com.android.server.display.config.RefreshRateZoneProfiles);
|
method public final void setRefreshRateZoneProfiles(com.android.server.display.config.RefreshRateZoneProfiles);
|
||||||
|
|||||||
@@ -157,13 +157,13 @@ 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(2, mDisplayDeviceConfig.getRefreshRangeProfiles().size());
|
assertEquals(2, mDisplayDeviceConfig.getRefreshRangeProfiles().size());
|
||||||
assertEquals(60, mDisplayDeviceConfig.getRefreshRange("test1").min, SMALL_DELTA);
|
assertEquals(60, mDisplayDeviceConfig.getRefreshRange("test1").min, SMALL_DELTA);
|
||||||
assertEquals(60, mDisplayDeviceConfig.getRefreshRange("test1").max, SMALL_DELTA);
|
assertEquals(60, mDisplayDeviceConfig.getRefreshRange("test1").max, SMALL_DELTA);
|
||||||
assertEquals(80, mDisplayDeviceConfig.getRefreshRange("test2").min, SMALL_DELTA);
|
assertEquals(80, mDisplayDeviceConfig.getRefreshRange("test2").min, SMALL_DELTA);
|
||||||
assertEquals(90, mDisplayDeviceConfig.getRefreshRange("test2").max, SMALL_DELTA);
|
assertEquals(90, mDisplayDeviceConfig.getRefreshRange("test2").max, SMALL_DELTA);
|
||||||
|
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},
|
||||||
@@ -575,6 +575,8 @@ public final class DisplayDeviceConfigTest {
|
|||||||
+ "</refreshRateRange>\n"
|
+ "</refreshRateRange>\n"
|
||||||
+ "</refreshRateZoneProfile>\n"
|
+ "</refreshRateZoneProfile>\n"
|
||||||
+ "</refreshRateZoneProfiles>"
|
+ "</refreshRateZoneProfiles>"
|
||||||
|
+ "<defaultRefreshRateInHbmHdr>82</defaultRefreshRateInHbmHdr>\n"
|
||||||
|
+ "<defaultRefreshRateInHbmSunlight>83</defaultRefreshRateInHbmSunlight>\n"
|
||||||
+ "<lowerBlockingZoneConfigs>\n"
|
+ "<lowerBlockingZoneConfigs>\n"
|
||||||
+ "<defaultRefreshRate>75</defaultRefreshRate>\n"
|
+ "<defaultRefreshRate>75</defaultRefreshRate>\n"
|
||||||
+ "<blockingZoneThreshold>\n"
|
+ "<blockingZoneThreshold>\n"
|
||||||
|
|||||||
Reference in New Issue
Block a user