Loading services/surfaceflinger/CompositionEngine/include/compositionengine/impl/OutputLayerCompositionState.h +3 −0 Original line number Diff line number Diff line Loading @@ -115,6 +115,9 @@ struct OutputLayerCompositionState { // The buffer cache for this layer. This is used to lower the // cost of sending reused buffers to the HWC. HwcBufferCache hwcBufferCache; // Set to true when overridden info has been sent to HW composer bool stateOverridden = false; }; // The HWC state is optional, and is only set up if there is any potential Loading services/surfaceflinger/CompositionEngine/src/Output.cpp +1 −4 Original line number Diff line number Diff line Loading @@ -722,10 +722,7 @@ void Output::writeCompositionState(const compositionengine::CompositionRefreshAr previousOverride = layer->getState().overrideInfo.buffer; } // TODO(b/181172795): We now update geometry for all flattened layers. We should update it // only when the geometry actually changes const bool includeGeometry = refreshArgs.updatingGeometryThisFrame || layer->getState().overrideInfo.buffer != nullptr || skipLayer; const bool includeGeometry = refreshArgs.updatingGeometryThisFrame; layer->writeStateToHWC(includeGeometry, skipLayer); } } Loading services/surfaceflinger/CompositionEngine/src/OutputLayer.cpp +7 −1 Original line number Diff line number Diff line Loading @@ -333,7 +333,11 @@ void OutputLayer::writeStateToHWC(bool includeGeometry, bool skipLayer) { auto requestedCompositionType = outputIndependentState->compositionType; if (includeGeometry) { // TODO(b/181172795): We now update geometry for all flattened layers. We should update it // only when the geometry actually changes const bool isOverridden = state.overrideInfo.buffer != nullptr; const bool prevOverridden = state.hwc->stateOverridden; if (isOverridden || prevOverridden || skipLayer || includeGeometry) { writeOutputDependentGeometryStateToHWC(hwcLayer.get(), requestedCompositionType); writeOutputIndependentGeometryStateToHWC(hwcLayer.get(), *outputIndependentState, skipLayer); Loading @@ -346,6 +350,8 @@ void OutputLayer::writeStateToHWC(bool includeGeometry, bool skipLayer) { // Always set the layer color after setting the composition type. writeSolidColorStateToHWC(hwcLayer.get(), *outputIndependentState); editState().hwc->stateOverridden = isOverridden; } void OutputLayer::writeOutputDependentGeometryStateToHWC( Loading Loading
services/surfaceflinger/CompositionEngine/include/compositionengine/impl/OutputLayerCompositionState.h +3 −0 Original line number Diff line number Diff line Loading @@ -115,6 +115,9 @@ struct OutputLayerCompositionState { // The buffer cache for this layer. This is used to lower the // cost of sending reused buffers to the HWC. HwcBufferCache hwcBufferCache; // Set to true when overridden info has been sent to HW composer bool stateOverridden = false; }; // The HWC state is optional, and is only set up if there is any potential Loading
services/surfaceflinger/CompositionEngine/src/Output.cpp +1 −4 Original line number Diff line number Diff line Loading @@ -722,10 +722,7 @@ void Output::writeCompositionState(const compositionengine::CompositionRefreshAr previousOverride = layer->getState().overrideInfo.buffer; } // TODO(b/181172795): We now update geometry for all flattened layers. We should update it // only when the geometry actually changes const bool includeGeometry = refreshArgs.updatingGeometryThisFrame || layer->getState().overrideInfo.buffer != nullptr || skipLayer; const bool includeGeometry = refreshArgs.updatingGeometryThisFrame; layer->writeStateToHWC(includeGeometry, skipLayer); } } Loading
services/surfaceflinger/CompositionEngine/src/OutputLayer.cpp +7 −1 Original line number Diff line number Diff line Loading @@ -333,7 +333,11 @@ void OutputLayer::writeStateToHWC(bool includeGeometry, bool skipLayer) { auto requestedCompositionType = outputIndependentState->compositionType; if (includeGeometry) { // TODO(b/181172795): We now update geometry for all flattened layers. We should update it // only when the geometry actually changes const bool isOverridden = state.overrideInfo.buffer != nullptr; const bool prevOverridden = state.hwc->stateOverridden; if (isOverridden || prevOverridden || skipLayer || includeGeometry) { writeOutputDependentGeometryStateToHWC(hwcLayer.get(), requestedCompositionType); writeOutputIndependentGeometryStateToHWC(hwcLayer.get(), *outputIndependentState, skipLayer); Loading @@ -346,6 +350,8 @@ void OutputLayer::writeStateToHWC(bool includeGeometry, bool skipLayer) { // Always set the layer color after setting the composition type. writeSolidColorStateToHWC(hwcLayer.get(), *outputIndependentState); editState().hwc->stateOverridden = isOverridden; } void OutputLayer::writeOutputDependentGeometryStateToHWC( Loading