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

Commit 8d86ae55 authored by Chavi Weingarten's avatar Chavi Weingarten Committed by Automerger Merge Worker
Browse files

Merge "Use pixel format from buffer to determine opacity." into rvc-dev am:...

Merge "Use pixel format from buffer to determine opacity." into rvc-dev am: 3bedba65 am: 7d6541d3 am: 64c1c223

Change-Id: I48c81060b1628ba263c96ff428f127e0858ed732
parents 585e76f9 64c1c223
Loading
Loading
Loading
Loading
+7 −2
Original line number Original line Diff line number Diff line
@@ -272,7 +272,7 @@ bool BufferLayer::isHdrY410() const {
    // pixel format is HDR Y410 masquerading as RGBA_1010102
    // pixel format is HDR Y410 masquerading as RGBA_1010102
    return (mBufferInfo.mDataspace == ui::Dataspace::BT2020_ITU_PQ &&
    return (mBufferInfo.mDataspace == ui::Dataspace::BT2020_ITU_PQ &&
            mBufferInfo.mApi == NATIVE_WINDOW_API_MEDIA &&
            mBufferInfo.mApi == NATIVE_WINDOW_API_MEDIA &&
            mBufferInfo.mBuffer->getPixelFormat() == HAL_PIXEL_FORMAT_RGBA_1010102);
            mBufferInfo.mPixelFormat == HAL_PIXEL_FORMAT_RGBA_1010102);
}
}


sp<compositionengine::LayerFE> BufferLayer::getCompositionEngineLayerFE() const {
sp<compositionengine::LayerFE> BufferLayer::getCompositionEngineLayerFE() const {
@@ -374,6 +374,12 @@ bool BufferLayer::onPostComposition(sp<const DisplayDevice> displayDevice,
    return true;
    return true;
}
}


void BufferLayer::gatherBufferInfo() {
    mBufferInfo.mPixelFormat =
            !mBufferInfo.mBuffer ? PIXEL_FORMAT_NONE : mBufferInfo.mBuffer->format;
    mBufferInfo.mFrameLatencyNeeded = true;
}

bool BufferLayer::latchBuffer(bool& recomputeVisibleRegions, nsecs_t latchTime,
bool BufferLayer::latchBuffer(bool& recomputeVisibleRegions, nsecs_t latchTime,
                              nsecs_t expectedPresentTime) {
                              nsecs_t expectedPresentTime) {
    ATRACE_CALL();
    ATRACE_CALL();
@@ -434,7 +440,6 @@ bool BufferLayer::latchBuffer(bool& recomputeVisibleRegions, nsecs_t latchTime,
    gatherBufferInfo();
    gatherBufferInfo();


    mRefreshPending = true;
    mRefreshPending = true;
    mBufferInfo.mFrameLatencyNeeded = true;
    if (oldBufferInfo.mBuffer == nullptr) {
    if (oldBufferInfo.mBuffer == nullptr) {
        // the first time we receive a buffer, we need to trigger a
        // the first time we receive a buffer, we need to trigger a
        // geometry invalidation.
        // geometry invalidation.
+1 −1
Original line number Original line Diff line number Diff line
@@ -161,7 +161,7 @@ protected:
        Region mSurfaceDamage;
        Region mSurfaceDamage;
        HdrMetadata mHdrMetadata;
        HdrMetadata mHdrMetadata;
        int mApi;
        int mApi;
        PixelFormat mPixelFormat;
        PixelFormat mPixelFormat{PIXEL_FORMAT_NONE};
        bool mTransformToDisplayInverse{false};
        bool mTransformToDisplayInverse{false};


        sp<GraphicBuffer> mBuffer;
        sp<GraphicBuffer> mBuffer;
+2 −3
Original line number Original line Diff line number Diff line
@@ -525,8 +525,6 @@ status_t BufferQueueLayer::setDefaultBufferProperties(uint32_t w, uint32_t h, Pi
        return BAD_VALUE;
        return BAD_VALUE;
    }
    }


    mFormat = format;

    setDefaultBufferSize(w, h);
    setDefaultBufferSize(w, h);
    mConsumer->setDefaultBufferFormat(format);
    mConsumer->setDefaultBufferFormat(format);
    mConsumer->setConsumerUsageBits(getEffectiveUsage(0));
    mConsumer->setConsumerUsageBits(getEffectiveUsage(0));
@@ -550,6 +548,8 @@ uint32_t BufferQueueLayer::getProducerStickyTransform() const {
}
}


void BufferQueueLayer::gatherBufferInfo() {
void BufferQueueLayer::gatherBufferInfo() {
    BufferLayer::gatherBufferInfo();

    mBufferInfo.mDesiredPresentTime = mConsumer->getTimestamp();
    mBufferInfo.mDesiredPresentTime = mConsumer->getTimestamp();
    mBufferInfo.mFenceTime = mConsumer->getCurrentFenceTime();
    mBufferInfo.mFenceTime = mConsumer->getCurrentFenceTime();
    mBufferInfo.mFence = mConsumer->getCurrentFence();
    mBufferInfo.mFence = mConsumer->getCurrentFence();
@@ -560,7 +560,6 @@ void BufferQueueLayer::gatherBufferInfo() {
    mBufferInfo.mSurfaceDamage = mConsumer->getSurfaceDamage();
    mBufferInfo.mSurfaceDamage = mConsumer->getSurfaceDamage();
    mBufferInfo.mHdrMetadata = mConsumer->getCurrentHdrMetadata();
    mBufferInfo.mHdrMetadata = mConsumer->getCurrentHdrMetadata();
    mBufferInfo.mApi = mConsumer->getCurrentApi();
    mBufferInfo.mApi = mConsumer->getCurrentApi();
    mBufferInfo.mPixelFormat = mFormat;
    mBufferInfo.mTransformToDisplayInverse = mConsumer->getTransformToDisplayInverse();
    mBufferInfo.mTransformToDisplayInverse = mConsumer->getTransformToDisplayInverse();
}
}


+0 −2
Original line number Original line Diff line number Diff line
@@ -132,8 +132,6 @@ private:
    sp<BufferLayerConsumer> mConsumer;
    sp<BufferLayerConsumer> mConsumer;
    sp<IGraphicBufferProducer> mProducer;
    sp<IGraphicBufferProducer> mProducer;


    PixelFormat mFormat{PIXEL_FORMAT_NONE};

    bool mUpdateTexImageFailed{false};
    bool mUpdateTexImageFailed{false};


    uint64_t mPreviousBufferId = 0;
    uint64_t mPreviousBufferId = 0;
+2 −3
Original line number Original line Diff line number Diff line
@@ -718,8 +718,9 @@ void BufferStateLayer::HwcSlotGenerator::eraseBufferLocked(const client_cache_t&
}
}


void BufferStateLayer::gatherBufferInfo() {
void BufferStateLayer::gatherBufferInfo() {
    const State& s(getDrawingState());
    BufferLayer::gatherBufferInfo();


    const State& s(getDrawingState());
    mBufferInfo.mDesiredPresentTime = s.desiredPresentTime;
    mBufferInfo.mDesiredPresentTime = s.desiredPresentTime;
    mBufferInfo.mFenceTime = std::make_shared<FenceTime>(s.acquireFence);
    mBufferInfo.mFenceTime = std::make_shared<FenceTime>(s.acquireFence);
    mBufferInfo.mFence = s.acquireFence;
    mBufferInfo.mFence = s.acquireFence;
@@ -730,8 +731,6 @@ void BufferStateLayer::gatherBufferInfo() {
    mBufferInfo.mSurfaceDamage = s.surfaceDamageRegion;
    mBufferInfo.mSurfaceDamage = s.surfaceDamageRegion;
    mBufferInfo.mHdrMetadata = s.hdrMetadata;
    mBufferInfo.mHdrMetadata = s.hdrMetadata;
    mBufferInfo.mApi = s.api;
    mBufferInfo.mApi = s.api;
    mBufferInfo.mPixelFormat =
            !mBufferInfo.mBuffer ? PIXEL_FORMAT_NONE : mBufferInfo.mBuffer->format;
    mBufferInfo.mTransformToDisplayInverse = s.transformToDisplayInverse;
    mBufferInfo.mTransformToDisplayInverse = s.transformToDisplayInverse;
    mBufferInfo.mBufferSlot = mHwcSlotGenerator->getHwcCacheSlot(s.clientCacheId);
    mBufferInfo.mBufferSlot = mHwcSlotGenerator->getHwcCacheSlot(s.clientCacheId);
}
}
Loading