Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9755fb75 authored by Lloyd Pique's avatar Lloyd Pique
Browse files

CE: Layers only have FE layer state

Remove the concept of having a compositionengine::Layer having internal
state since it was only used to internally store a copy of the
LayerFECompositionState. Instead switch the Layer interface so only the
FE state can be obtained. Any internal state will from now on be
private.

Doing this also allows the LayerFECompostionState to be easily extended
by extended versions of CompositionEngine.

Test: atest libsurfaceflinger_unittest libcompositionengine_test
Test: atest CtsColorModeTestCases
Test: atest CtsDisplayTestCases
Test: atest CtsGraphicsTestCases
Test: atest CtsUiRenderingTestCases
Test: atest CtsViewTestCases
Test: atest android.media.cts.EncodeVirtualDisplayWithCompositionTest
Test: go/wm-smoke
Bug: 121291683

Change-Id: I689e8714aca46320c87e0cb5ef18fdde93eb7499
parent 862e50c5
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -22,12 +22,10 @@
#include "BufferLayer.h"

#include <compositionengine/CompositionEngine.h>
#include <compositionengine/Display.h>
#include <compositionengine/Layer.h>
#include <compositionengine/LayerCreationArgs.h>
#include <compositionengine/LayerFECompositionState.h>
#include <compositionengine/OutputLayer.h>
#include <compositionengine/impl/LayerCompositionState.h>
#include <compositionengine/impl/OutputLayerCompositionState.h>
#include <cutils/compiler.h>
#include <cutils/native_handle.h>
+5 −7
Original line number Diff line number Diff line
@@ -17,15 +17,13 @@
#undef LOG_TAG
#define LOG_TAG "BufferQueueLayer"
#define ATRACE_TAG ATRACE_TAG_GRAPHICS
#include <compositionengine/Display.h>
#include "BufferQueueLayer.h"

#include <compositionengine/Layer.h>
#include <compositionengine/OutputLayer.h>
#include <compositionengine/impl/LayerCompositionState.h>
#include <compositionengine/impl/OutputLayerCompositionState.h>
#include <compositionengine/LayerFECompositionState.h>
#include <gui/BufferQueueConsumer.h>
#include <system/window.h>

#include "BufferQueueLayer.h"
#include "LayerRejecter.h"
#include "SurfaceInterceptor.h"

@@ -197,7 +195,7 @@ bool BufferQueueLayer::latchSidebandStream(bool& recomputeVisibleRegions) {
    if (mSidebandStreamChanged.compare_exchange_strong(sidebandStreamChanged, false)) {
        // mSidebandStreamChanged was changed to false
        mSidebandStream = mConsumer->getSidebandStream();
        auto& layerCompositionState = getCompositionLayer()->editState().frontEnd;
        auto& layerCompositionState = getCompositionLayer()->editFEState();
        layerCompositionState.sidebandStream = mSidebandStream;
        if (layerCompositionState.sidebandStream != nullptr) {
            setTransactionFlags(eTransactionNeeded);
@@ -335,7 +333,7 @@ status_t BufferQueueLayer::updateActiveBuffer() {
    mPreviousBufferId = getCurrentBufferId();
    mBufferInfo.mBuffer =
            mConsumer->getCurrentBuffer(&mBufferInfo.mBufferSlot, &mBufferInfo.mFence);
    auto& layerCompositionState = getCompositionLayer()->editState().frontEnd;
    auto& layerCompositionState = getCompositionLayer()->editFEState();
    layerCompositionState.buffer = mBufferInfo.mBuffer;

    if (mBufferInfo.mBuffer == nullptr) {
+5 −7
Original line number Diff line number Diff line
@@ -19,18 +19,16 @@
#define LOG_TAG "BufferStateLayer"
#define ATRACE_TAG ATRACE_TAG_GRAPHICS

#include "BufferStateLayer.h"

#include <limits>

#include <compositionengine/Display.h>
#include <compositionengine/Layer.h>
#include <compositionengine/OutputLayer.h>
#include <compositionengine/impl/LayerCompositionState.h>
#include <compositionengine/impl/OutputLayerCompositionState.h>
#include <compositionengine/LayerFECompositionState.h>
#include <gui/BufferQueue.h>
#include <private/gui/SyncFeatures.h>
#include <renderengine/Image.h>

#include "BufferStateLayer.h"
#include "ColorLayer.h"
#include "FrameTracer/FrameTracer.h"
#include "TimeStats/TimeStats.h"
@@ -415,7 +413,7 @@ bool BufferStateLayer::latchSidebandStream(bool& recomputeVisibleRegions) {
        // mSidebandStreamChanged was true
        LOG_ALWAYS_FATAL_IF(!getCompositionLayer());
        mSidebandStream = s.sidebandStream;
        getCompositionLayer()->editState().frontEnd.sidebandStream = mSidebandStream;
        getCompositionLayer()->editFEState().sidebandStream = mSidebandStream;
        if (mSidebandStream != nullptr) {
            setTransactionFlags(eTransactionNeeded);
            mFlinger->setTransactionFlags(eTraversalNeeded);
@@ -520,7 +518,7 @@ status_t BufferStateLayer::updateActiveBuffer() {
    mPreviousBufferId = getCurrentBufferId();
    mBufferInfo.mBuffer = s.buffer;
    mBufferInfo.mFence = s.acquireFence;
    auto& layerCompositionState = getCompositionLayer()->editState().frontEnd;
    auto& layerCompositionState = getCompositionLayer()->editFEState();
    layerCompositionState.buffer = mBufferInfo.mBuffer;

    return NO_ERROR;
+0 −4
Original line number Diff line number Diff line
@@ -25,13 +25,9 @@
#include <sys/types.h>

#include <compositionengine/CompositionEngine.h>
#include <compositionengine/Display.h>
#include <compositionengine/Layer.h>
#include <compositionengine/LayerCreationArgs.h>
#include <compositionengine/LayerFECompositionState.h>
#include <compositionengine/OutputLayer.h>
#include <compositionengine/impl/LayerCompositionState.h>
#include <compositionengine/impl/OutputLayerCompositionState.h>
#include <renderengine/RenderEngine.h>
#include <ui/GraphicBuffer.h>
#include <utils/Errors.h>
+1 −1
Original line number Diff line number Diff line
@@ -47,7 +47,7 @@ cc_library {
        "src/DumpHelpers.cpp",
        "src/HwcBufferCache.cpp",
        "src/Layer.cpp",
        "src/LayerCompositionState.cpp",
        "src/LayerFECompositionState.cpp",
        "src/Output.cpp",
        "src/OutputCompositionState.cpp",
        "src/OutputLayer.cpp",
Loading