Loading services/surfaceflinger/CompositionEngine/src/planner/CachedSet.cpp +6 −1 Original line number Diff line number Diff line Loading @@ -307,7 +307,12 @@ bool CachedSet::requiresHolePunch() const { } const auto& layerFE = mLayers[0].getState()->getOutputLayer()->getLayerFE(); if (layerFE.getCompositionState()->forceClientComposition) { const auto* compositionState = layerFE.getCompositionState(); if (compositionState->forceClientComposition) { return false; } if (compositionState->blendMode != hal::BlendMode::NONE) { return false; } Loading services/surfaceflinger/CompositionEngine/tests/planner/CachedSetTest.cpp +31 −5 Original line number Diff line number Diff line Loading @@ -539,6 +539,8 @@ TEST_F(CachedSetTest, rendersWithOffsetFramebufferContent) { TEST_F(CachedSetTest, holePunch_requiresBuffer) { CachedSet::Layer& layer1 = *mTestLayers[0]->cachedSetLayer.get(); auto& layerFECompositionState = mTestLayers[0]->layerFECompositionState; layerFECompositionState.blendMode = hal::BlendMode::NONE; sp<mock::LayerFE> layerFE1 = mTestLayers[0]->layerFE; CachedSet cachedSet(layer1); Loading @@ -549,7 +551,9 @@ TEST_F(CachedSetTest, holePunch_requiresBuffer) { TEST_F(CachedSetTest, holePunch_requiresRoundedCorners) { CachedSet::Layer& layer1 = *mTestLayers[0]->cachedSetLayer.get(); mTestLayers[0]->layerFECompositionState.buffer = sp<GraphicBuffer>::make(); auto& layerFECompositionState = mTestLayers[0]->layerFECompositionState; layerFECompositionState.buffer = sp<GraphicBuffer>::make(); layerFECompositionState.blendMode = hal::BlendMode::NONE; CachedSet cachedSet(layer1); Loading @@ -558,7 +562,9 @@ TEST_F(CachedSetTest, holePunch_requiresRoundedCorners) { TEST_F(CachedSetTest, holePunch_requiresSingleLayer) { CachedSet::Layer& layer1 = *mTestLayers[0]->cachedSetLayer.get(); mTestLayers[0]->layerFECompositionState.buffer = sp<GraphicBuffer>::make(); auto& layerFECompositionState = mTestLayers[0]->layerFECompositionState; layerFECompositionState.buffer = sp<GraphicBuffer>::make(); layerFECompositionState.blendMode = hal::BlendMode::NONE; sp<mock::LayerFE> layerFE = mTestLayers[0]->layerFE; EXPECT_CALL(*layerFE, hasRoundedCorners()).WillRepeatedly(Return(true)); Loading @@ -575,7 +581,9 @@ TEST_F(CachedSetTest, holePunch_requiresNonHdr) { mTestLayers[0]->layerState->update(&mTestLayers[0]->outputLayer); CachedSet::Layer& layer = *mTestLayers[0]->cachedSetLayer.get(); mTestLayers[0]->layerFECompositionState.buffer = sp<GraphicBuffer>::make(); auto& layerFECompositionState = mTestLayers[0]->layerFECompositionState; layerFECompositionState.buffer = sp<GraphicBuffer>::make(); layerFECompositionState.blendMode = hal::BlendMode::NONE; sp<mock::LayerFE> layerFE = mTestLayers[0]->layerFE; CachedSet cachedSet(layer); Loading @@ -589,7 +597,22 @@ TEST_F(CachedSetTest, holePunch_requiresNonBT601_625) { mTestLayers[0]->layerState->update(&mTestLayers[0]->outputLayer); CachedSet::Layer& layer = *mTestLayers[0]->cachedSetLayer.get(); mTestLayers[0]->layerFECompositionState.buffer = sp<GraphicBuffer>::make(); auto& layerFECompositionState = mTestLayers[0]->layerFECompositionState; layerFECompositionState.buffer = sp<GraphicBuffer>::make(); layerFECompositionState.blendMode = hal::BlendMode::NONE; sp<mock::LayerFE> layerFE = mTestLayers[0]->layerFE; CachedSet cachedSet(layer); EXPECT_CALL(*layerFE, hasRoundedCorners()).WillRepeatedly(Return(true)); EXPECT_FALSE(cachedSet.requiresHolePunch()); } TEST_F(CachedSetTest, holePunch_requiresNoBlending) { CachedSet::Layer& layer = *mTestLayers[0]->cachedSetLayer.get(); auto& layerFECompositionState = mTestLayers[0]->layerFECompositionState; layerFECompositionState.buffer = sp<GraphicBuffer>::make(); layerFECompositionState.blendMode = hal::BlendMode::PREMULTIPLIED; sp<mock::LayerFE> layerFE = mTestLayers[0]->layerFE; CachedSet cachedSet(layer); Loading @@ -600,7 +623,9 @@ TEST_F(CachedSetTest, holePunch_requiresNonBT601_625) { TEST_F(CachedSetTest, requiresHolePunch) { CachedSet::Layer& layer = *mTestLayers[0]->cachedSetLayer.get(); mTestLayers[0]->layerFECompositionState.buffer = sp<GraphicBuffer>::make(); auto& layerFECompositionState = mTestLayers[0]->layerFECompositionState; layerFECompositionState.buffer = sp<GraphicBuffer>::make(); layerFECompositionState.blendMode = hal::BlendMode::NONE; sp<mock::LayerFE> layerFE = mTestLayers[0]->layerFE; CachedSet cachedSet(layer); Loading @@ -614,6 +639,7 @@ TEST_F(CachedSetTest, holePunch_requiresDeviceComposition) { sp<mock::LayerFE> layerFE = mTestLayers[0]->layerFE; auto& layerFECompositionState = mTestLayers[0]->layerFECompositionState; layerFECompositionState.buffer = sp<GraphicBuffer>::make(); layerFECompositionState.blendMode = hal::BlendMode::NONE; layerFECompositionState.forceClientComposition = true; CachedSet cachedSet(layer); Loading services/surfaceflinger/CompositionEngine/tests/planner/FlattenerTest.cpp +3 −0 Original line number Diff line number Diff line Loading @@ -633,6 +633,7 @@ TEST_F(FlattenerTest, flattenLayers_pip) { auto& layerState3 = mTestLayers[2]->layerState; const auto& overrideBuffer3 = layerState3->getOutputLayer()->getState().overrideInfo.buffer; mTestLayers[2]->layerFECompositionState.blendMode = hal::BlendMode::NONE; EXPECT_CALL(*mTestLayers[2]->layerFE, hasRoundedCorners()).WillRepeatedly(Return(true)); Loading Loading @@ -706,6 +707,7 @@ TEST_F(FlattenerTest, flattenLayers_holePunchSingleLayer) { // a rounded updating layer auto& layerState1 = mTestLayers[1]->layerState; const auto& overrideBuffer1 = layerState1->getOutputLayer()->getState().overrideInfo.buffer; mTestLayers[1]->layerFECompositionState.blendMode = hal::BlendMode::NONE; EXPECT_CALL(*mTestLayers[1]->layerFE, hasRoundedCorners()).WillRepeatedly(Return(true)); Loading Loading @@ -777,6 +779,7 @@ TEST_F(FlattenerTest, flattenLayers_holePunchSingleColorLayer) { // a rounded updating layer auto& layerState1 = mTestLayers[1]->layerState; const auto& overrideBuffer1 = layerState1->getOutputLayer()->getState().overrideInfo.buffer; mTestLayers[1]->layerFECompositionState.blendMode = hal::BlendMode::NONE; EXPECT_CALL(*mTestLayers[1]->layerFE, hasRoundedCorners()).WillRepeatedly(Return(true)); Loading Loading
services/surfaceflinger/CompositionEngine/src/planner/CachedSet.cpp +6 −1 Original line number Diff line number Diff line Loading @@ -307,7 +307,12 @@ bool CachedSet::requiresHolePunch() const { } const auto& layerFE = mLayers[0].getState()->getOutputLayer()->getLayerFE(); if (layerFE.getCompositionState()->forceClientComposition) { const auto* compositionState = layerFE.getCompositionState(); if (compositionState->forceClientComposition) { return false; } if (compositionState->blendMode != hal::BlendMode::NONE) { return false; } Loading
services/surfaceflinger/CompositionEngine/tests/planner/CachedSetTest.cpp +31 −5 Original line number Diff line number Diff line Loading @@ -539,6 +539,8 @@ TEST_F(CachedSetTest, rendersWithOffsetFramebufferContent) { TEST_F(CachedSetTest, holePunch_requiresBuffer) { CachedSet::Layer& layer1 = *mTestLayers[0]->cachedSetLayer.get(); auto& layerFECompositionState = mTestLayers[0]->layerFECompositionState; layerFECompositionState.blendMode = hal::BlendMode::NONE; sp<mock::LayerFE> layerFE1 = mTestLayers[0]->layerFE; CachedSet cachedSet(layer1); Loading @@ -549,7 +551,9 @@ TEST_F(CachedSetTest, holePunch_requiresBuffer) { TEST_F(CachedSetTest, holePunch_requiresRoundedCorners) { CachedSet::Layer& layer1 = *mTestLayers[0]->cachedSetLayer.get(); mTestLayers[0]->layerFECompositionState.buffer = sp<GraphicBuffer>::make(); auto& layerFECompositionState = mTestLayers[0]->layerFECompositionState; layerFECompositionState.buffer = sp<GraphicBuffer>::make(); layerFECompositionState.blendMode = hal::BlendMode::NONE; CachedSet cachedSet(layer1); Loading @@ -558,7 +562,9 @@ TEST_F(CachedSetTest, holePunch_requiresRoundedCorners) { TEST_F(CachedSetTest, holePunch_requiresSingleLayer) { CachedSet::Layer& layer1 = *mTestLayers[0]->cachedSetLayer.get(); mTestLayers[0]->layerFECompositionState.buffer = sp<GraphicBuffer>::make(); auto& layerFECompositionState = mTestLayers[0]->layerFECompositionState; layerFECompositionState.buffer = sp<GraphicBuffer>::make(); layerFECompositionState.blendMode = hal::BlendMode::NONE; sp<mock::LayerFE> layerFE = mTestLayers[0]->layerFE; EXPECT_CALL(*layerFE, hasRoundedCorners()).WillRepeatedly(Return(true)); Loading @@ -575,7 +581,9 @@ TEST_F(CachedSetTest, holePunch_requiresNonHdr) { mTestLayers[0]->layerState->update(&mTestLayers[0]->outputLayer); CachedSet::Layer& layer = *mTestLayers[0]->cachedSetLayer.get(); mTestLayers[0]->layerFECompositionState.buffer = sp<GraphicBuffer>::make(); auto& layerFECompositionState = mTestLayers[0]->layerFECompositionState; layerFECompositionState.buffer = sp<GraphicBuffer>::make(); layerFECompositionState.blendMode = hal::BlendMode::NONE; sp<mock::LayerFE> layerFE = mTestLayers[0]->layerFE; CachedSet cachedSet(layer); Loading @@ -589,7 +597,22 @@ TEST_F(CachedSetTest, holePunch_requiresNonBT601_625) { mTestLayers[0]->layerState->update(&mTestLayers[0]->outputLayer); CachedSet::Layer& layer = *mTestLayers[0]->cachedSetLayer.get(); mTestLayers[0]->layerFECompositionState.buffer = sp<GraphicBuffer>::make(); auto& layerFECompositionState = mTestLayers[0]->layerFECompositionState; layerFECompositionState.buffer = sp<GraphicBuffer>::make(); layerFECompositionState.blendMode = hal::BlendMode::NONE; sp<mock::LayerFE> layerFE = mTestLayers[0]->layerFE; CachedSet cachedSet(layer); EXPECT_CALL(*layerFE, hasRoundedCorners()).WillRepeatedly(Return(true)); EXPECT_FALSE(cachedSet.requiresHolePunch()); } TEST_F(CachedSetTest, holePunch_requiresNoBlending) { CachedSet::Layer& layer = *mTestLayers[0]->cachedSetLayer.get(); auto& layerFECompositionState = mTestLayers[0]->layerFECompositionState; layerFECompositionState.buffer = sp<GraphicBuffer>::make(); layerFECompositionState.blendMode = hal::BlendMode::PREMULTIPLIED; sp<mock::LayerFE> layerFE = mTestLayers[0]->layerFE; CachedSet cachedSet(layer); Loading @@ -600,7 +623,9 @@ TEST_F(CachedSetTest, holePunch_requiresNonBT601_625) { TEST_F(CachedSetTest, requiresHolePunch) { CachedSet::Layer& layer = *mTestLayers[0]->cachedSetLayer.get(); mTestLayers[0]->layerFECompositionState.buffer = sp<GraphicBuffer>::make(); auto& layerFECompositionState = mTestLayers[0]->layerFECompositionState; layerFECompositionState.buffer = sp<GraphicBuffer>::make(); layerFECompositionState.blendMode = hal::BlendMode::NONE; sp<mock::LayerFE> layerFE = mTestLayers[0]->layerFE; CachedSet cachedSet(layer); Loading @@ -614,6 +639,7 @@ TEST_F(CachedSetTest, holePunch_requiresDeviceComposition) { sp<mock::LayerFE> layerFE = mTestLayers[0]->layerFE; auto& layerFECompositionState = mTestLayers[0]->layerFECompositionState; layerFECompositionState.buffer = sp<GraphicBuffer>::make(); layerFECompositionState.blendMode = hal::BlendMode::NONE; layerFECompositionState.forceClientComposition = true; CachedSet cachedSet(layer); Loading
services/surfaceflinger/CompositionEngine/tests/planner/FlattenerTest.cpp +3 −0 Original line number Diff line number Diff line Loading @@ -633,6 +633,7 @@ TEST_F(FlattenerTest, flattenLayers_pip) { auto& layerState3 = mTestLayers[2]->layerState; const auto& overrideBuffer3 = layerState3->getOutputLayer()->getState().overrideInfo.buffer; mTestLayers[2]->layerFECompositionState.blendMode = hal::BlendMode::NONE; EXPECT_CALL(*mTestLayers[2]->layerFE, hasRoundedCorners()).WillRepeatedly(Return(true)); Loading Loading @@ -706,6 +707,7 @@ TEST_F(FlattenerTest, flattenLayers_holePunchSingleLayer) { // a rounded updating layer auto& layerState1 = mTestLayers[1]->layerState; const auto& overrideBuffer1 = layerState1->getOutputLayer()->getState().overrideInfo.buffer; mTestLayers[1]->layerFECompositionState.blendMode = hal::BlendMode::NONE; EXPECT_CALL(*mTestLayers[1]->layerFE, hasRoundedCorners()).WillRepeatedly(Return(true)); Loading Loading @@ -777,6 +779,7 @@ TEST_F(FlattenerTest, flattenLayers_holePunchSingleColorLayer) { // a rounded updating layer auto& layerState1 = mTestLayers[1]->layerState; const auto& overrideBuffer1 = layerState1->getOutputLayer()->getState().overrideInfo.buffer; mTestLayers[1]->layerFECompositionState.blendMode = hal::BlendMode::NONE; EXPECT_CALL(*mTestLayers[1]->layerFE, hasRoundedCorners()).WillRepeatedly(Return(true)); Loading