diff options
author | Thierry Strudel <tstrudel@google.com> | 2017-08-14 15:19:37 -0700 |
---|---|---|
committer | Patrick Tjin <pattjin@google.com> | 2017-08-15 10:33:15 -0700 |
commit | 2924d01304dba0b714c556b14e45e34f70472e96 (patch) | |
tree | ed7aeed10ffb568ed9e33fb5a5f30c6e527ad2d8 | |
parent | 34ec404b4baf067ce6dd6ca6c7de824d29f280bc (diff) | |
download | native-2924d01304dba0b714c556b14e45e34f70472e96.tar.gz |
Revert "Postpone color mode change until after boot animation"
This reverts commit c53d3558d55dfd1d1c424b0d632fea693113e83e.
To have better control on when the color shift is happening, the
bootloader asset will be aligned with the Android OS applied
saturation. So apply the color setting as soon as SF is up.
Bug: 63520186
Bug: 63823274
Test: Verify that sRGB is applied at the start of boot animation
Change-Id: I611eb61266c909fde50e7ea2b4c1314541228736
-rw-r--r-- | services/surfaceflinger/SurfaceFlinger.cpp | 29 |
1 files changed, 9 insertions, 20 deletions
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index 2703db8e93..8ed6686ebf 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -377,20 +377,10 @@ void SurfaceFlinger::bootFinished() LOG_EVENT_LONG(LOGTAG_SF_STOP_BOOTANIM, ns2ms(systemTime(SYSTEM_TIME_MONOTONIC))); - sp<LambdaMessage> bootFinished = new LambdaMessage([&]() { - mBootFinished = true; - + sp<LambdaMessage> readProperties = new LambdaMessage([&]() { readPersistentProperties(); - -#ifdef USE_HWC2 - sp<DisplayDevice> hw(getDisplayDevice(mBuiltinDisplays[DisplayDevice::DISPLAY_PRIMARY])); - if (hw->getWideColorSupport()) { - hw->setCompositionDataSpace(HAL_DATASPACE_V0_SRGB); - setActiveColorModeInternal(hw, HAL_COLOR_MODE_SRGB); - } -#endif }); - postMessageAsync(bootFinished); + postMessageAsync(readProperties); } void SurfaceFlinger::deleteTextureAsync(uint32_t texture) { @@ -555,7 +545,7 @@ void SurfaceFlinger::init() { ALOGI( "SurfaceFlinger's main thread ready to run. " "Initializing graphics H/W..."); - ALOGI("Phase offset NS: %" PRId64 "", vsyncPhaseOffsetNs); + ALOGI("Phase offest NS: %" PRId64 "", vsyncPhaseOffsetNs); { // Autolock scope Mutex::Autolock _l(mStateLock); @@ -1224,7 +1214,11 @@ void SurfaceFlinger::createDefaultDisplayDevice() { token, fbs, producer, mRenderEngine->getEGLConfig(), hasWideColorModes && hasWideColorDisplay); mDisplays.add(token, hw); - setActiveColorModeInternal(hw, HAL_COLOR_MODE_NATIVE); + android_color_mode defaultColorMode = HAL_COLOR_MODE_NATIVE; + if (hasWideColorModes && hasWideColorDisplay) { + defaultColorMode = HAL_COLOR_MODE_SRGB; + } + setActiveColorModeInternal(hw, defaultColorMode); hw->setCompositionDataSpace(HAL_DATASPACE_UNKNOWN); } @@ -1870,12 +1864,7 @@ void SurfaceFlinger::setUpHWComposer() { } newColorMode = pickColorMode(newDataSpace); - // We want the color mode of the boot animation to match that of the bootloader - // To achieve this we suppress color mode changes until after the boot animation - if (mBootFinished) { - setActiveColorModeInternal(displayDevice, newColorMode); - displayDevice->setCompositionDataSpace(newDataSpace); - } + setActiveColorModeInternal(displayDevice, newColorMode); } } |