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

Commit 83ce7c16 authored by Chia-I Wu's avatar Chia-I Wu
Browse files

surfaceflinger: remove USE_HWC2

Remove USE_HWC2 and assume it to be true.  Remove all !USE_HWC2
code.

This also fixes a compile error in tests/fakehwc, which never
defines USE_HWC2.

Test: boots taimen and hikey960
Change-Id: Ie6d2fcf884aa6fc715ab0ce19a1e0f7c8acf734c
parent d265c423
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -54,7 +54,6 @@ LOCAL_C_INCLUDES := \

LOCAL_CFLAGS := -DLOG_TAG=\"SurfaceFlinger\"
LOCAL_CFLAGS += -DGL_GLEXT_PROTOTYPES -DEGL_EGLEXT_PROTOTYPES
LOCAL_CFLAGS += -DUSE_HWC2

LOCAL_CFLAGS += -fvisibility=hidden -Werror=format

@@ -120,8 +119,6 @@ LOCAL_CFLAGS := -DLOG_TAG=\"SurfaceFlinger\"

LOCAL_INIT_RC := surfaceflinger.rc

LOCAL_CFLAGS += -DUSE_HWC2

LOCAL_SRC_FILES := \
    main_surfaceflinger.cpp

+0 −55
Original line number Diff line number Diff line
@@ -61,9 +61,7 @@ BufferLayer::BufferLayer(SurfaceFlinger* flinger, const sp<Client>& client, cons
        mPreviousFrameNumber(0),
        mUpdateTexImageFailed(false),
        mRefreshPending(false) {
#ifdef USE_HWC2
    ALOGV("Creating Layer %s", name.string());
#endif

    mFlinger->getRenderEngine().genTextures(1, &mTextureName);
    mTexture.init(Texture::TEXTURE_EXTERNAL, mTextureName);
@@ -90,14 +88,12 @@ BufferLayer::~BufferLayer() {
    }
    mFlinger->deleteTextureAsync(mTextureName);

#ifdef USE_HWC2
    if (!mHwcLayers.empty()) {
        ALOGE("Found stale hardware composer layers when destroying "
              "surface flinger layer %s",
              mName.string());
        destroyAllHwcLayers();
    }
#endif
}

void BufferLayer::useSurfaceDamage() {
@@ -265,22 +261,12 @@ void BufferLayer::onDraw(const RenderArea& renderArea, const Region& clip,
    engine.disableTexturing();
}

#ifdef USE_HWC2
void BufferLayer::onLayerDisplayed(const sp<Fence>& releaseFence) {
    if (mHwcLayers.empty()) {
        return;
    }
    mSurfaceFlingerConsumer->setReleaseFence(releaseFence);
}
#else
void BufferLayer::onLayerDisplayed(const sp<const DisplayDevice>& /*hw*/,
                                   HWComposer::HWCLayerInterface* layer) {
    if (layer) {
        layer->onDisplayed();
        mSurfaceFlingerConsumer->setReleaseFence(layer->getAndResetReleaseFence());
    }
}
#endif

void BufferLayer::abandon() {
    mSurfaceFlingerConsumer->abandon();
@@ -376,7 +362,6 @@ bool BufferLayer::getTransformToDisplayInverse() const {
    return mSurfaceFlingerConsumer->getTransformToDisplayInverse();
}

#ifdef USE_HWC2
void BufferLayer::releasePendingBuffer(nsecs_t dequeueReadyTime) {
    if (!mSurfaceFlingerConsumer->releasePendingBuffer()) {
        return;
@@ -393,7 +378,6 @@ void BufferLayer::releasePendingBuffer(nsecs_t dequeueReadyTime) {
                                      std::move(releaseFenceTime));
    }
}
#endif

Region BufferLayer::latchBuffer(bool& recomputeVisibleRegions, nsecs_t latchTime) {
    ATRACE_CALL();
@@ -523,16 +507,6 @@ Region BufferLayer::latchBuffer(bool& recomputeVisibleRegions, nsecs_t latchTime
    {
        Mutex::Autolock lock(mFrameEventHistoryMutex);
        mFrameEventHistory.addLatch(mCurrentFrameNumber, latchTime);
#ifndef USE_HWC2
        auto releaseFenceTime =
                std::make_shared<FenceTime>(mSurfaceFlingerConsumer->getPrevFinalReleaseFence());
        mReleaseTimeline.updateSignalTimes();
        mReleaseTimeline.push(releaseFenceTime);
        if (mPreviousFrameNumber != 0) {
            mFrameEventHistory.addRelease(mPreviousFrameNumber, latchTime,
                                          std::move(releaseFenceTime));
        }
#endif
    }

    mRefreshPending = true;
@@ -604,7 +578,6 @@ void BufferLayer::setDefaultBufferSize(uint32_t w, uint32_t h) {
    mSurfaceFlingerConsumer->setDefaultBufferSize(w, h);
}

#ifdef USE_HWC2
void BufferLayer::setPerFrameData(const sp<const DisplayDevice>& displayDevice) {
    // Apply this display's projection's viewport to the visible region
    // before giving it to the HWC HAL.
@@ -676,28 +649,6 @@ void BufferLayer::setPerFrameData(const sp<const DisplayDevice>& displayDevice)
    }
}

#else
void BufferLayer::setAcquireFence(const sp<const DisplayDevice>& /* hw */,
                                  HWComposer::HWCLayerInterface& layer) {
    int fenceFd = -1;

    // TODO: there is a possible optimization here: we only need to set the
    // acquire fence the first time a new buffer is acquired on EACH display.

    if (layer.getCompositionType() == HWC_OVERLAY ||
        layer.getCompositionType() == HWC_CURSOR_OVERLAY) {
        sp<Fence> fence = mSurfaceFlingerConsumer->getCurrentFence();
        if (fence->isValid()) {
            fenceFd = fence->dup();
            if (fenceFd == -1) {
                ALOGW("failed to dup layer fence, skipping sync: %d", errno);
            }
        }
    }
    layer.setAcquireFenceFd(fenceFd);
}
#endif

bool BufferLayer::isOpaque(const Layer::State& s) const {
    // if we don't have a buffer or sidebandStream yet, we're translucent regardless of the
    // layer's opaque flag.
@@ -871,9 +822,7 @@ void BufferLayer::drawWithOpenGL(const RenderArea& renderArea, bool useIdentityT
    RenderEngine& engine(mFlinger->getRenderEngine());
    engine.setupLayerBlending(mPremultipliedAlpha, isOpaque(s), false /* disableTexture */,
                              getColor());
#ifdef USE_HWC2
    engine.setSourceDataSpace(mCurrentState.dataSpace);
#endif
    engine.drawMesh(mMesh);
    engine.disableBlending();
}
@@ -913,7 +862,6 @@ uint64_t BufferLayer::getHeadFrameNumber() const {
}

bool BufferLayer::headFenceHasSignaled() const {
#ifdef USE_HWC2
    if (latchUnsignaledBuffers()) {
        return true;
    }
@@ -930,9 +878,6 @@ bool BufferLayer::headFenceHasSignaled() const {
        return true;
    }
    return mQueueItems[0].mFenceTime->getSignalTime() != Fence::SIGNAL_TIME_PENDING;
#else
    return true;
#endif
}

uint32_t BufferLayer::getEffectiveScalingMode() const {
+0 −12
Original line number Diff line number Diff line
@@ -105,12 +105,7 @@ public:
    void onDraw(const RenderArea& renderArea, const Region& clip,
                bool useIdentityTransform) const override;

#ifdef USE_HWC2
    void onLayerDisplayed(const sp<Fence>& releaseFence) override;
#else
    void onLayerDisplayed(const sp<const DisplayDevice>& hw,
                          HWComposer::HWCLayerInterface* layer) override;
#endif

    void abandon() override;
    bool shouldPresentNow(const DispSync& dispSync) const override;
@@ -124,10 +119,8 @@ public:
public:
    bool onPreComposition(nsecs_t refreshStartTime) override;

#ifdef USE_HWC2
    // If a buffer was replaced this frame, release the former buffer
    void releasePendingBuffer(nsecs_t dequeueReadyTime);
#endif

    /*
     * latchBuffer - called each time the screen is redrawn and returns whether
@@ -139,12 +132,7 @@ public:
    bool isBufferLatched() const override { return mRefreshPending; }
    void setDefaultBufferSize(uint32_t w, uint32_t h) override;

#ifdef USE_HWC2
    void setPerFrameData(const sp<const DisplayDevice>& displayDevice) override;
#else
    void setAcquireFence(const sp<const DisplayDevice>& hw,
                         HWComposer::HWCLayerInterface& layer) override;
#endif

    bool isOpaque(const Layer::State& s) const override;

+0 −2
Original line number Diff line number Diff line
@@ -61,7 +61,6 @@ bool ColorLayer::isVisible() const {
    return !isHiddenByPolicy() && s.color.a;
}

#ifdef USE_HWC2
void ColorLayer::setPerFrameData(const sp<const DisplayDevice>& displayDevice) {
    const Transform& tr = displayDevice->getTransform();
    const auto& viewport = displayDevice->getViewport();
@@ -89,7 +88,6 @@ void ColorLayer::setPerFrameData(const sp<const DisplayDevice>& displayDevice) {
              static_cast<int32_t>(error));
    }
}
#endif

// ---------------------------------------------------------------------------

+0 −7
Original line number Diff line number Diff line
@@ -42,21 +42,14 @@ public:
    void notifyAvailableFrames() override {}
    PixelFormat getPixelFormat() const override { return PIXEL_FORMAT_NONE; }
    uint32_t getEffectiveScalingMode() const override { return 0; }
#ifdef USE_HWC2
    void releasePendingBuffer(nsecs_t) override {}
#endif
    Region latchBuffer(bool&, nsecs_t) override { return Region(); }
    void useSurfaceDamage() override {}
    void useEmptyDamage() override {}
    bool isBufferLatched() const override { return false; }
    bool onPreComposition(nsecs_t) override { return true; }
    void abandon() override {}
#ifdef USE_HWC2
    void setPerFrameData(const sp<const DisplayDevice>& displayDevice) override;
#else
    void setAcquireFence(const sp<const DisplayDevice>& /*hw*/,
                         HWComposer::HWCLayerInterface& /*layer*/) override {}
#endif
    void setDefaultBufferSize(uint32_t /*w*/, uint32_t /*h*/) override {}
    bool shouldPresentNow(const DispSync& /*dispSync*/) const override { return false; }
    bool onPostComposition(const std::shared_ptr<FenceTime>& /*glDoneFence*/,
Loading