Loading services/core/java/com/android/server/display/DisplayPowerController.java +3 −2 Original line number Diff line number Diff line Loading @@ -1978,8 +1978,9 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call || sdrAnimateValue != currentSdrBrightness)) { boolean skipAnimation = initialRampSkip || hasBrightnessBuckets || !isDisplayContentVisible || brightnessIsTemporary; if (!skipAnimation && BrightnessSynchronizer.floatEquals( sdrAnimateValue, currentSdrBrightness)) { final boolean isHdrOnlyChange = BrightnessSynchronizer.floatEquals( sdrAnimateValue, currentSdrBrightness); if (mFlags.isFastHdrTransitionsEnabled() && !skipAnimation && isHdrOnlyChange) { // SDR brightness is unchanged, so animate quickly as this is only impacting // a likely minority amount of display content // ie, the highlights of an HDR video or UltraHDR image Loading services/core/java/com/android/server/display/DisplayPowerController2.java +3 −2 Original line number Diff line number Diff line Loading @@ -1602,8 +1602,9 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal || sdrAnimateValue != currentSdrBrightness)) { boolean skipAnimation = initialRampSkip || hasBrightnessBuckets || !isDisplayContentVisible || brightnessIsTemporary; if (!skipAnimation && BrightnessSynchronizer.floatEquals( sdrAnimateValue, currentSdrBrightness)) { final boolean isHdrOnlyChange = BrightnessSynchronizer.floatEquals( sdrAnimateValue, currentSdrBrightness); if (mFlags.isFastHdrTransitionsEnabled() && !skipAnimation && isHdrOnlyChange) { // SDR brightness is unchanged, so animate quickly as this is only impacting // a likely minority amount of display content // ie, the highlights of an HDR video or UltraHDR image Loading services/core/java/com/android/server/display/feature/DisplayManagerFlags.java +9 −0 Original line number Diff line number Diff line Loading @@ -101,6 +101,10 @@ public class DisplayManagerFlags { Flags.FLAG_AUTO_BRIGHTNESS_MODES, Flags::autoBrightnessModes); private final FlagState mFastHdrTransitions = new FlagState( Flags.FLAG_FAST_HDR_TRANSITIONS, Flags::fastHdrTransitions); /** Returns whether connected display management is enabled or not. */ public boolean isConnectedDisplayManagementEnabled() { return mConnectedDisplayManagementFlagState.isEnabled(); Loading Loading @@ -205,6 +209,10 @@ public class DisplayManagerFlags { return mAutoBrightnessModesFlagState.isEnabled(); } public boolean isFastHdrTransitionsEnabled() { return mFastHdrTransitions.isEnabled(); } /** * dumps all flagstates * @param pw printWriter Loading @@ -226,6 +234,7 @@ public class DisplayManagerFlags { pw.println(" " + mVsyncProximityVote); pw.println(" " + mBrightnessWearBedtimeModeClamperFlagState); pw.println(" " + mAutoBrightnessModesFlagState); pw.println(" " + mFastHdrTransitions); } private static class FlagState { Loading services/core/java/com/android/server/display/feature/display_flags.aconfig +9 −0 Original line number Diff line number Diff line Loading @@ -144,3 +144,12 @@ flag { bug: "293613040" is_fixed_read_only: true } flag { name: "fast_hdr_transitions" namespace: "display_manager" description: "Feature flag for fast transitions into/out of HDR" bug: "292124102" is_fixed_read_only: true } services/tests/displayservicetests/src/com/android/server/display/DisplayPowerController2Test.java +2 −0 Original line number Diff line number Diff line Loading @@ -727,6 +727,7 @@ public final class DisplayPowerController2Test { } @Test @RequiresFlagsEnabled(Flags.FLAG_FAST_HDR_TRANSITIONS) public void testDisplayBrightnessHdr_SkipAnimationOnHdrAppearance() { Settings.System.putInt(mContext.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, Loading Loading @@ -762,6 +763,7 @@ public final class DisplayPowerController2Test { } @Test @RequiresFlagsEnabled(Flags.FLAG_FAST_HDR_TRANSITIONS) public void testDisplayBrightnessHdr_SkipAnimationOnHdrRemoval() { Settings.System.putInt(mContext.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, Loading Loading
services/core/java/com/android/server/display/DisplayPowerController.java +3 −2 Original line number Diff line number Diff line Loading @@ -1978,8 +1978,9 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call || sdrAnimateValue != currentSdrBrightness)) { boolean skipAnimation = initialRampSkip || hasBrightnessBuckets || !isDisplayContentVisible || brightnessIsTemporary; if (!skipAnimation && BrightnessSynchronizer.floatEquals( sdrAnimateValue, currentSdrBrightness)) { final boolean isHdrOnlyChange = BrightnessSynchronizer.floatEquals( sdrAnimateValue, currentSdrBrightness); if (mFlags.isFastHdrTransitionsEnabled() && !skipAnimation && isHdrOnlyChange) { // SDR brightness is unchanged, so animate quickly as this is only impacting // a likely minority amount of display content // ie, the highlights of an HDR video or UltraHDR image Loading
services/core/java/com/android/server/display/DisplayPowerController2.java +3 −2 Original line number Diff line number Diff line Loading @@ -1602,8 +1602,9 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal || sdrAnimateValue != currentSdrBrightness)) { boolean skipAnimation = initialRampSkip || hasBrightnessBuckets || !isDisplayContentVisible || brightnessIsTemporary; if (!skipAnimation && BrightnessSynchronizer.floatEquals( sdrAnimateValue, currentSdrBrightness)) { final boolean isHdrOnlyChange = BrightnessSynchronizer.floatEquals( sdrAnimateValue, currentSdrBrightness); if (mFlags.isFastHdrTransitionsEnabled() && !skipAnimation && isHdrOnlyChange) { // SDR brightness is unchanged, so animate quickly as this is only impacting // a likely minority amount of display content // ie, the highlights of an HDR video or UltraHDR image Loading
services/core/java/com/android/server/display/feature/DisplayManagerFlags.java +9 −0 Original line number Diff line number Diff line Loading @@ -101,6 +101,10 @@ public class DisplayManagerFlags { Flags.FLAG_AUTO_BRIGHTNESS_MODES, Flags::autoBrightnessModes); private final FlagState mFastHdrTransitions = new FlagState( Flags.FLAG_FAST_HDR_TRANSITIONS, Flags::fastHdrTransitions); /** Returns whether connected display management is enabled or not. */ public boolean isConnectedDisplayManagementEnabled() { return mConnectedDisplayManagementFlagState.isEnabled(); Loading Loading @@ -205,6 +209,10 @@ public class DisplayManagerFlags { return mAutoBrightnessModesFlagState.isEnabled(); } public boolean isFastHdrTransitionsEnabled() { return mFastHdrTransitions.isEnabled(); } /** * dumps all flagstates * @param pw printWriter Loading @@ -226,6 +234,7 @@ public class DisplayManagerFlags { pw.println(" " + mVsyncProximityVote); pw.println(" " + mBrightnessWearBedtimeModeClamperFlagState); pw.println(" " + mAutoBrightnessModesFlagState); pw.println(" " + mFastHdrTransitions); } private static class FlagState { Loading
services/core/java/com/android/server/display/feature/display_flags.aconfig +9 −0 Original line number Diff line number Diff line Loading @@ -144,3 +144,12 @@ flag { bug: "293613040" is_fixed_read_only: true } flag { name: "fast_hdr_transitions" namespace: "display_manager" description: "Feature flag for fast transitions into/out of HDR" bug: "292124102" is_fixed_read_only: true }
services/tests/displayservicetests/src/com/android/server/display/DisplayPowerController2Test.java +2 −0 Original line number Diff line number Diff line Loading @@ -727,6 +727,7 @@ public final class DisplayPowerController2Test { } @Test @RequiresFlagsEnabled(Flags.FLAG_FAST_HDR_TRANSITIONS) public void testDisplayBrightnessHdr_SkipAnimationOnHdrAppearance() { Settings.System.putInt(mContext.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, Loading Loading @@ -762,6 +763,7 @@ public final class DisplayPowerController2Test { } @Test @RequiresFlagsEnabled(Flags.FLAG_FAST_HDR_TRANSITIONS) public void testDisplayBrightnessHdr_SkipAnimationOnHdrRemoval() { Settings.System.putInt(mContext.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, Loading