Loading services/surfaceflinger/CompositionEngine/src/planner/CachedSet.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -294,6 +294,12 @@ bool CachedSet::requiresHolePunch() const { return false; } // Do not use a hole punch with an HDR layer; this should be done in client // composition to properly mix HDR with SDR. if (hasHdrLayers()) { return false; } const auto& layerFE = mLayers[0].getState()->getOutputLayer()->getLayerFE(); if (layerFE.getCompositionState()->forceClientComposition) { return false; Loading services/surfaceflinger/CompositionEngine/tests/planner/CachedSetTest.cpp +14 −0 Original line number Diff line number Diff line Loading @@ -429,6 +429,20 @@ TEST_F(CachedSetTest, holePunch_requiresSingleLayer) { EXPECT_FALSE(cachedSet.requiresHolePunch()); } TEST_F(CachedSetTest, holePunch_requiresNonHdr) { mTestLayers[0]->outputLayerCompositionState.dataspace = ui::Dataspace::BT2020_PQ; mTestLayers[0]->layerState->update(&mTestLayers[0]->outputLayer); CachedSet::Layer& layer = *mTestLayers[0]->cachedSetLayer.get(); mTestLayers[0]->layerFECompositionState.buffer = sp<GraphicBuffer>::make(); sp<mock::LayerFE> layerFE = mTestLayers[0]->layerFE; CachedSet cachedSet(layer); EXPECT_CALL(*layerFE, hasRoundedCorners()).WillRepeatedly(Return(true)); EXPECT_FALSE(cachedSet.requiresHolePunch()); } TEST_F(CachedSetTest, requiresHolePunch) { CachedSet::Layer& layer = *mTestLayers[0]->cachedSetLayer.get(); mTestLayers[0]->layerFECompositionState.buffer = sp<GraphicBuffer>::make(); Loading Loading
services/surfaceflinger/CompositionEngine/src/planner/CachedSet.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -294,6 +294,12 @@ bool CachedSet::requiresHolePunch() const { return false; } // Do not use a hole punch with an HDR layer; this should be done in client // composition to properly mix HDR with SDR. if (hasHdrLayers()) { return false; } const auto& layerFE = mLayers[0].getState()->getOutputLayer()->getLayerFE(); if (layerFE.getCompositionState()->forceClientComposition) { return false; Loading
services/surfaceflinger/CompositionEngine/tests/planner/CachedSetTest.cpp +14 −0 Original line number Diff line number Diff line Loading @@ -429,6 +429,20 @@ TEST_F(CachedSetTest, holePunch_requiresSingleLayer) { EXPECT_FALSE(cachedSet.requiresHolePunch()); } TEST_F(CachedSetTest, holePunch_requiresNonHdr) { mTestLayers[0]->outputLayerCompositionState.dataspace = ui::Dataspace::BT2020_PQ; mTestLayers[0]->layerState->update(&mTestLayers[0]->outputLayer); CachedSet::Layer& layer = *mTestLayers[0]->cachedSetLayer.get(); mTestLayers[0]->layerFECompositionState.buffer = sp<GraphicBuffer>::make(); sp<mock::LayerFE> layerFE = mTestLayers[0]->layerFE; CachedSet cachedSet(layer); EXPECT_CALL(*layerFE, hasRoundedCorners()).WillRepeatedly(Return(true)); EXPECT_FALSE(cachedSet.requiresHolePunch()); } TEST_F(CachedSetTest, requiresHolePunch) { CachedSet::Layer& layer = *mTestLayers[0]->cachedSetLayer.get(); mTestLayers[0]->layerFECompositionState.buffer = sp<GraphicBuffer>::make(); Loading