Loading services/surfaceflinger/DisplayDevice.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -174,7 +174,7 @@ auto DisplayDevice::getInputInfo() const -> InputInfo { void DisplayDevice::setPowerMode(hal::PowerMode mode) { if (mode == hal::PowerMode::OFF || mode == hal::PowerMode::ON) { if (mStagedBrightness && mBrightness != *mStagedBrightness) { if (mStagedBrightness && mBrightness != mStagedBrightness) { getCompositionDisplay()->setNextBrightness(*mStagedBrightness); mBrightness = *mStagedBrightness; } Loading Loading @@ -336,7 +336,7 @@ void DisplayDevice::stageBrightness(float brightness) { } void DisplayDevice::persistBrightness(bool needsComposite) { if (mStagedBrightness && mBrightness != *mStagedBrightness) { if (mStagedBrightness && mBrightness != mStagedBrightness) { if (needsComposite) { getCompositionDisplay()->setNextBrightness(*mStagedBrightness); } Loading services/surfaceflinger/DisplayDevice.h +2 −2 Original line number Diff line number Diff line Loading @@ -284,8 +284,8 @@ private: // allow initial power mode as null. std::optional<hardware::graphics::composer::hal::PowerMode> mPowerMode; DisplayModePtr mActiveMode; std::optional<float> mStagedBrightness = std::nullopt; float mBrightness = -1.f; std::optional<float> mStagedBrightness; std::optional<float> mBrightness; const DisplayModes mSupportedModes; std::atomic<nsecs_t> mLastHwVsync = 0; Loading services/surfaceflinger/tests/unittests/DisplayDevice_SetDisplayBrightnessTest.cpp +18 −0 Original line number Diff line number Diff line Loading @@ -96,5 +96,23 @@ TEST_F(SetDisplayBrightnessTest, persistDisplayBrightnessWithCompositeShortCircu EXPECT_EQ(std::nullopt, displayDevice->getCompositionDisplay()->getState().displayBrightness); } TEST_F(SetDisplayBrightnessTest, firstDisplayBrightnessWithComposite) { ftl::FakeGuard guard(kMainThreadContext); sp<DisplayDevice> displayDevice = getDisplayDevice(); EXPECT_EQ(std::nullopt, displayDevice->getStagedBrightness()); constexpr float kDisplayBrightness = -1.0f; displayDevice->stageBrightness(kDisplayBrightness); EXPECT_EQ(-1.0f, displayDevice->getStagedBrightness()); displayDevice->persistBrightness(true); EXPECT_EQ(std::nullopt, displayDevice->getStagedBrightness()); EXPECT_EQ(kDisplayBrightness, displayDevice->getCompositionDisplay()->getState().displayBrightness); } } // namespace } // namespace android Loading
services/surfaceflinger/DisplayDevice.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -174,7 +174,7 @@ auto DisplayDevice::getInputInfo() const -> InputInfo { void DisplayDevice::setPowerMode(hal::PowerMode mode) { if (mode == hal::PowerMode::OFF || mode == hal::PowerMode::ON) { if (mStagedBrightness && mBrightness != *mStagedBrightness) { if (mStagedBrightness && mBrightness != mStagedBrightness) { getCompositionDisplay()->setNextBrightness(*mStagedBrightness); mBrightness = *mStagedBrightness; } Loading Loading @@ -336,7 +336,7 @@ void DisplayDevice::stageBrightness(float brightness) { } void DisplayDevice::persistBrightness(bool needsComposite) { if (mStagedBrightness && mBrightness != *mStagedBrightness) { if (mStagedBrightness && mBrightness != mStagedBrightness) { if (needsComposite) { getCompositionDisplay()->setNextBrightness(*mStagedBrightness); } Loading
services/surfaceflinger/DisplayDevice.h +2 −2 Original line number Diff line number Diff line Loading @@ -284,8 +284,8 @@ private: // allow initial power mode as null. std::optional<hardware::graphics::composer::hal::PowerMode> mPowerMode; DisplayModePtr mActiveMode; std::optional<float> mStagedBrightness = std::nullopt; float mBrightness = -1.f; std::optional<float> mStagedBrightness; std::optional<float> mBrightness; const DisplayModes mSupportedModes; std::atomic<nsecs_t> mLastHwVsync = 0; Loading
services/surfaceflinger/tests/unittests/DisplayDevice_SetDisplayBrightnessTest.cpp +18 −0 Original line number Diff line number Diff line Loading @@ -96,5 +96,23 @@ TEST_F(SetDisplayBrightnessTest, persistDisplayBrightnessWithCompositeShortCircu EXPECT_EQ(std::nullopt, displayDevice->getCompositionDisplay()->getState().displayBrightness); } TEST_F(SetDisplayBrightnessTest, firstDisplayBrightnessWithComposite) { ftl::FakeGuard guard(kMainThreadContext); sp<DisplayDevice> displayDevice = getDisplayDevice(); EXPECT_EQ(std::nullopt, displayDevice->getStagedBrightness()); constexpr float kDisplayBrightness = -1.0f; displayDevice->stageBrightness(kDisplayBrightness); EXPECT_EQ(-1.0f, displayDevice->getStagedBrightness()); displayDevice->persistBrightness(true); EXPECT_EQ(std::nullopt, displayDevice->getStagedBrightness()); EXPECT_EQ(kDisplayBrightness, displayDevice->getCompositionDisplay()->getState().displayBrightness); } } // namespace } // namespace android