Loading services/surfaceflinger/CompositionEngine/include/compositionengine/impl/planner/CachedSet.h +1 −1 Original line number Diff line number Diff line Loading @@ -70,7 +70,7 @@ public: size_t getCreationCost() const; size_t getDisplayCost() const; bool hasBufferUpdate(std::vector<const LayerState*>::const_iterator layers) const; bool hasBufferUpdate() const; bool hasReadyBuffer() const; // Decomposes this CachedSet into a vector of its layers as individual CachedSets Loading services/surfaceflinger/CompositionEngine/src/planner/CachedSet.cpp +1 −2 Original line number Diff line number Diff line Loading @@ -116,12 +116,11 @@ size_t CachedSet::getDisplayCost() const { return static_cast<size_t>(mBounds.width() * mBounds.height()); } bool CachedSet::hasBufferUpdate(std::vector<const LayerState*>::const_iterator layers) const { bool CachedSet::hasBufferUpdate() const { for (const Layer& layer : mLayers) { if (layer.getFramesSinceBufferUpdate() == 0) { return true; } ++layers; } return false; } Loading services/surfaceflinger/CompositionEngine/src/planner/Flattener.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -208,7 +208,7 @@ bool Flattener::mergeWithCachedSets(const std::vector<const LayerState*>& layers if (mNewCachedSet && mNewCachedSet->getFingerprint() == (*incomingLayerIter)->getHash(LayerStateField::Buffer)) { if (mNewCachedSet->hasBufferUpdate(incomingLayerIter)) { if (mNewCachedSet->hasBufferUpdate()) { ALOGV("[%s] Dropping new cached set", __func__); ++mInvalidatedCachedSetAges[0]; mNewCachedSet = std::nullopt; Loading Loading @@ -242,7 +242,7 @@ bool Flattener::mergeWithCachedSets(const std::vector<const LayerState*>& layers } } if (!currentLayerIter->hasBufferUpdate(incomingLayerIter)) { if (!currentLayerIter->hasBufferUpdate()) { currentLayerIter->incrementAge(); merged.emplace_back(*currentLayerIter); Loading services/surfaceflinger/CompositionEngine/tests/planner/CachedSetTest.cpp +2 −14 Original line number Diff line number Diff line Loading @@ -201,13 +201,7 @@ TEST_F(CachedSetTest, hasBufferUpdate_NoUpdate) { cachedSet.addLayer(layer2.getState(), kStartTime + 10ms); cachedSet.addLayer(layer3.getState(), kStartTime + 20ms); std::vector<const LayerState*> incomingLayers = { layer1.getState(), layer2.getState(), layer3.getState(), }; EXPECT_FALSE(cachedSet.hasBufferUpdate(incomingLayers.begin())); EXPECT_FALSE(cachedSet.hasBufferUpdate()); } TEST_F(CachedSetTest, hasBufferUpdate_BufferUpdate) { Loading @@ -221,13 +215,7 @@ TEST_F(CachedSetTest, hasBufferUpdate_BufferUpdate) { mTestLayers[1]->layerState->resetFramesSinceBufferUpdate(); std::vector<const LayerState*> incomingLayers = { layer1.getState(), layer2.getState(), layer3.getState(), }; EXPECT_TRUE(cachedSet.hasBufferUpdate(incomingLayers.begin())); EXPECT_TRUE(cachedSet.hasBufferUpdate()); } TEST_F(CachedSetTest, append) { Loading Loading
services/surfaceflinger/CompositionEngine/include/compositionengine/impl/planner/CachedSet.h +1 −1 Original line number Diff line number Diff line Loading @@ -70,7 +70,7 @@ public: size_t getCreationCost() const; size_t getDisplayCost() const; bool hasBufferUpdate(std::vector<const LayerState*>::const_iterator layers) const; bool hasBufferUpdate() const; bool hasReadyBuffer() const; // Decomposes this CachedSet into a vector of its layers as individual CachedSets Loading
services/surfaceflinger/CompositionEngine/src/planner/CachedSet.cpp +1 −2 Original line number Diff line number Diff line Loading @@ -116,12 +116,11 @@ size_t CachedSet::getDisplayCost() const { return static_cast<size_t>(mBounds.width() * mBounds.height()); } bool CachedSet::hasBufferUpdate(std::vector<const LayerState*>::const_iterator layers) const { bool CachedSet::hasBufferUpdate() const { for (const Layer& layer : mLayers) { if (layer.getFramesSinceBufferUpdate() == 0) { return true; } ++layers; } return false; } Loading
services/surfaceflinger/CompositionEngine/src/planner/Flattener.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -208,7 +208,7 @@ bool Flattener::mergeWithCachedSets(const std::vector<const LayerState*>& layers if (mNewCachedSet && mNewCachedSet->getFingerprint() == (*incomingLayerIter)->getHash(LayerStateField::Buffer)) { if (mNewCachedSet->hasBufferUpdate(incomingLayerIter)) { if (mNewCachedSet->hasBufferUpdate()) { ALOGV("[%s] Dropping new cached set", __func__); ++mInvalidatedCachedSetAges[0]; mNewCachedSet = std::nullopt; Loading Loading @@ -242,7 +242,7 @@ bool Flattener::mergeWithCachedSets(const std::vector<const LayerState*>& layers } } if (!currentLayerIter->hasBufferUpdate(incomingLayerIter)) { if (!currentLayerIter->hasBufferUpdate()) { currentLayerIter->incrementAge(); merged.emplace_back(*currentLayerIter); Loading
services/surfaceflinger/CompositionEngine/tests/planner/CachedSetTest.cpp +2 −14 Original line number Diff line number Diff line Loading @@ -201,13 +201,7 @@ TEST_F(CachedSetTest, hasBufferUpdate_NoUpdate) { cachedSet.addLayer(layer2.getState(), kStartTime + 10ms); cachedSet.addLayer(layer3.getState(), kStartTime + 20ms); std::vector<const LayerState*> incomingLayers = { layer1.getState(), layer2.getState(), layer3.getState(), }; EXPECT_FALSE(cachedSet.hasBufferUpdate(incomingLayers.begin())); EXPECT_FALSE(cachedSet.hasBufferUpdate()); } TEST_F(CachedSetTest, hasBufferUpdate_BufferUpdate) { Loading @@ -221,13 +215,7 @@ TEST_F(CachedSetTest, hasBufferUpdate_BufferUpdate) { mTestLayers[1]->layerState->resetFramesSinceBufferUpdate(); std::vector<const LayerState*> incomingLayers = { layer1.getState(), layer2.getState(), layer3.getState(), }; EXPECT_TRUE(cachedSet.hasBufferUpdate(incomingLayers.begin())); EXPECT_TRUE(cachedSet.hasBufferUpdate()); } TEST_F(CachedSetTest, append) { Loading