Loading services/surfaceflinger/CompositionEngine/include/compositionengine/impl/planner/CachedSet.h +2 −0 Original line number Diff line number Diff line Loading @@ -147,6 +147,8 @@ public: bool hasProtectedLayers() const; bool hasSolidColorLayers() const; private: CachedSet() = default; Loading services/surfaceflinger/CompositionEngine/include/compositionengine/impl/planner/LayerState.h +6 −0 Original line number Diff line number Diff line Loading @@ -248,6 +248,12 @@ public: bool isProtected() const { return getOutputLayer()->getLayerFE().getCompositionState()->hasProtectedContent; } bool hasSolidColorCompositionType() const { return getOutputLayer()->getLayerFE().getCompositionState()->compositionType == aidl::android::hardware::graphics::composer3::Composition::SOLID_COLOR; } float getFps() const { return getOutputLayer()->getLayerFE().getCompositionState()->fps; } void dump(std::string& result) const; Loading services/surfaceflinger/CompositionEngine/src/OutputLayer.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -377,6 +377,7 @@ void OutputLayer::writeStateToHWC(bool includeGeometry, bool skipLayer, uint32_t auto requestedCompositionType = outputIndependentState->compositionType; if (requestedCompositionType == Composition::SOLID_COLOR && state.overrideInfo.buffer) { // this should never happen, as SOLID_COLOR is skipped from caching, b/230073351 requestedCompositionType = Composition::DEVICE; } Loading services/surfaceflinger/CompositionEngine/src/planner/CachedSet.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -388,6 +388,12 @@ bool CachedSet::hasProtectedLayers() const { [](const Layer& layer) { return layer.getState()->isProtected(); }); } bool CachedSet::hasSolidColorLayers() const { return std::any_of(mLayers.cbegin(), mLayers.cend(), [](const Layer& layer) { return layer.getState()->hasSolidColorCompositionType(); }); } void CachedSet::dump(std::string& result) const { const auto now = std::chrono::steady_clock::now(); Loading services/surfaceflinger/CompositionEngine/src/planner/Flattener.cpp +7 −0 Original line number Diff line number Diff line Loading @@ -498,6 +498,13 @@ void Flattener::buildCachedSets(time_point now) { } } for (const CachedSet& layer : mLayers) { if (layer.hasSolidColorLayers()) { ATRACE_NAME("layer->hasSolidColorLayers()"); return; } } std::vector<Run> runs = findCandidateRuns(now); std::optional<Run> bestRun = findBestRun(runs); Loading Loading
services/surfaceflinger/CompositionEngine/include/compositionengine/impl/planner/CachedSet.h +2 −0 Original line number Diff line number Diff line Loading @@ -147,6 +147,8 @@ public: bool hasProtectedLayers() const; bool hasSolidColorLayers() const; private: CachedSet() = default; Loading
services/surfaceflinger/CompositionEngine/include/compositionengine/impl/planner/LayerState.h +6 −0 Original line number Diff line number Diff line Loading @@ -248,6 +248,12 @@ public: bool isProtected() const { return getOutputLayer()->getLayerFE().getCompositionState()->hasProtectedContent; } bool hasSolidColorCompositionType() const { return getOutputLayer()->getLayerFE().getCompositionState()->compositionType == aidl::android::hardware::graphics::composer3::Composition::SOLID_COLOR; } float getFps() const { return getOutputLayer()->getLayerFE().getCompositionState()->fps; } void dump(std::string& result) const; Loading
services/surfaceflinger/CompositionEngine/src/OutputLayer.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -377,6 +377,7 @@ void OutputLayer::writeStateToHWC(bool includeGeometry, bool skipLayer, uint32_t auto requestedCompositionType = outputIndependentState->compositionType; if (requestedCompositionType == Composition::SOLID_COLOR && state.overrideInfo.buffer) { // this should never happen, as SOLID_COLOR is skipped from caching, b/230073351 requestedCompositionType = Composition::DEVICE; } Loading
services/surfaceflinger/CompositionEngine/src/planner/CachedSet.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -388,6 +388,12 @@ bool CachedSet::hasProtectedLayers() const { [](const Layer& layer) { return layer.getState()->isProtected(); }); } bool CachedSet::hasSolidColorLayers() const { return std::any_of(mLayers.cbegin(), mLayers.cend(), [](const Layer& layer) { return layer.getState()->hasSolidColorCompositionType(); }); } void CachedSet::dump(std::string& result) const { const auto now = std::chrono::steady_clock::now(); Loading
services/surfaceflinger/CompositionEngine/src/planner/Flattener.cpp +7 −0 Original line number Diff line number Diff line Loading @@ -498,6 +498,13 @@ void Flattener::buildCachedSets(time_point now) { } } for (const CachedSet& layer : mLayers) { if (layer.hasSolidColorLayers()) { ATRACE_NAME("layer->hasSolidColorLayers()"); return; } } std::vector<Run> runs = findCandidateRuns(now); std::optional<Run> bestRun = findBestRun(runs); Loading