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

Commit ac95b626 authored by Rob Carr's avatar Rob Carr Committed by Android (Google) Code Review
Browse files

Merge "SurfaceFlinger: Remove deferTransactionUntil" into sc-dev

parents d7f7f3f0 0758e5d1
Loading
Loading
Loading
Loading
+0 −6
Original line number Diff line number Diff line
@@ -46,7 +46,6 @@ message SurfaceChange {
        HiddenFlagChange            hidden_flag             = 12;
        OpaqueFlagChange            opaque_flag             = 13;
        SecureFlagChange            secure_flag             = 14;
        DeferredTransactionChange   deferred_transaction    = 15;
        CornerRadiusChange          corner_radius           = 16;
        ReparentChange              reparent                = 17;
        RelativeParentChange        relative_parent         = 18;
@@ -113,11 +112,6 @@ message SecureFlagChange {
    required bool secure_flag = 1;
}

message DeferredTransactionChange {
    required int32  layer_id     = 1;
    required uint64 frame_number = 2;
}

message DisplayChange {
    required int32 id = 1;

+0 −25
Original line number Diff line number Diff line
@@ -402,11 +402,6 @@ status_t Replayer::doSurfaceTransaction(
            case SurfaceChange::SurfaceChangeCase::kSecureFlag:
                setSecureFlag(transaction, change.id(), change.secure_flag());
                break;
            case SurfaceChange::SurfaceChangeCase::kDeferredTransaction:
                waitUntilDeferredTransactionLayerExists(change.deferred_transaction(), lock);
                setDeferredTransaction(transaction, change.id(),
                        change.deferred_transaction());
                break;
            case SurfaceChange::SurfaceChangeCase::kReparent:
                setReparentChange(transaction, change.id(), change.reparent());
                break;
@@ -560,19 +555,6 @@ void Replayer::setSecureFlag(SurfaceComposerClient::Transaction& t,
    t.setFlags(mLayers[id], flag, layer_state_t::eLayerSecure);
}

void Replayer::setDeferredTransaction(SurfaceComposerClient::Transaction& t,
        layer_id id, const DeferredTransactionChange& dtc) {
    ALOGV("Layer %d: Setting Deferred Transaction -- layer_id=%d, "
          "frame_number=%llu",
            id, dtc.layer_id(), dtc.frame_number());
    if (mLayers.count(dtc.layer_id()) == 0 || mLayers[dtc.layer_id()] == nullptr) {
        ALOGE("Layer %d not found in Deferred Transaction", dtc.layer_id());
        return;
    }

    t.deferTransactionUntil_legacy(mLayers[id], mLayers[dtc.layer_id()], dtc.frame_number());
}

void Replayer::setDisplaySurface(SurfaceComposerClient::Transaction& t,
        display_id id, const DispSurfaceChange& /*dsc*/) {
    sp<IGraphicBufferProducer> outProducer;
@@ -676,13 +658,6 @@ void Replayer::waitUntilTimestamp(int64_t timestamp) {
    std::this_thread::sleep_for(std::chrono::nanoseconds(timestamp - mCurrentTime));
}

void Replayer::waitUntilDeferredTransactionLayerExists(
        const DeferredTransactionChange& dtc, std::unique_lock<std::mutex>& lock) {
    if (mLayers.count(dtc.layer_id()) == 0 || mLayers[dtc.layer_id()] == nullptr) {
        mLayerCond.wait(lock, [&] { return (mLayers[dtc.layer_id()] != nullptr); });
    }
}

status_t Replayer::loadSurfaceComposerClient() {
    mComposerClient = new SurfaceComposerClient;
    return mComposerClient->initCheck();
+0 −4
Original line number Diff line number Diff line
@@ -110,8 +110,6 @@ class Replayer {
            layer_id id, const OpaqueFlagChange& ofc);
    void setSecureFlag(SurfaceComposerClient::Transaction& t,
            layer_id id, const SecureFlagChange& sfc);
    void setDeferredTransaction(SurfaceComposerClient::Transaction& t,
            layer_id id, const DeferredTransactionChange& dtc);
    void setReparentChange(SurfaceComposerClient::Transaction& t,
            layer_id id, const ReparentChange& c);
    void setRelativeParentChange(SurfaceComposerClient::Transaction& t,
@@ -131,8 +129,6 @@ class Replayer {
            display_id id, const ProjectionChange& pc);

    void waitUntilTimestamp(int64_t timestamp);
    void waitUntilDeferredTransactionLayerExists(
            const DeferredTransactionChange& dtc, std::unique_lock<std::mutex>& lock);
    status_t loadSurfaceComposerClient();

    Trace mTrace;
+0 −10
Original line number Diff line number Diff line
@@ -45,7 +45,6 @@ layer_state_t::layer_state_t()
        reserved(0),
        cornerRadius(0.0f),
        backgroundBlurRadius(0),
        barrierFrameNumber(0),
        transform(0),
        transformToDisplayInverse(false),
        crop(Rect::INVALID_RECT),
@@ -87,9 +86,7 @@ status_t layer_state_t::write(Parcel& output) const
    SAFE_PARCEL(output.writeUint32, mask);
    SAFE_PARCEL(matrix.write, output);
    SAFE_PARCEL(output.write, crop);
    SAFE_PARCEL(SurfaceControl::writeNullableToParcel, output, barrierSurfaceControl_legacy);
    SAFE_PARCEL(SurfaceControl::writeNullableToParcel, output, reparentSurfaceControl);
    SAFE_PARCEL(output.writeUint64, barrierFrameNumber);
    SAFE_PARCEL(SurfaceControl::writeNullableToParcel, output, relativeLayerSurfaceControl);
    SAFE_PARCEL(SurfaceControl::writeNullableToParcel, output, parentSurfaceControlForChild);
    SAFE_PARCEL(output.writeFloat, color.r);
@@ -193,9 +190,7 @@ status_t layer_state_t::read(const Parcel& input)

    SAFE_PARCEL(matrix.read, input);
    SAFE_PARCEL(input.read, crop);
    SAFE_PARCEL(SurfaceControl::readNullableFromParcel, input, &barrierSurfaceControl_legacy);
    SAFE_PARCEL(SurfaceControl::readNullableFromParcel, input, &reparentSurfaceControl);
    SAFE_PARCEL(input.readUint64, &barrierFrameNumber);

    SAFE_PARCEL(SurfaceControl::readNullableFromParcel, input, &relativeLayerSurfaceControl);
    SAFE_PARCEL(SurfaceControl::readNullableFromParcel, input, &parentSurfaceControlForChild);
@@ -425,11 +420,6 @@ void layer_state_t::merge(const layer_state_t& other) {
        what |= eBlurRegionsChanged;
        blurRegions = other.blurRegions;
    }
    if (other.what & eDeferTransaction_legacy) {
        what |= eDeferTransaction_legacy;
        barrierSurfaceControl_legacy = other.barrierSurfaceControl_legacy;
        barrierFrameNumber = other.barrierFrameNumber;
    }
    if (other.what & eRelativeLayerChanged) {
        what |= eRelativeLayerChanged;
        what &= ~eLayerChanged;
+0 −17
Original line number Diff line number Diff line
@@ -1140,23 +1140,6 @@ SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setBlurR
    return *this;
}

SurfaceComposerClient::Transaction&
SurfaceComposerClient::Transaction::deferTransactionUntil_legacy(
        const sp<SurfaceControl>& sc, const sp<SurfaceControl>& barrierSurfaceControl,
        uint64_t frameNumber) {
    layer_state_t* s = getLayerState(sc);
    if (!s) {
        mStatus = BAD_INDEX;
        return *this;
    }
    s->what |= layer_state_t::eDeferTransaction_legacy;
    s->barrierSurfaceControl_legacy = barrierSurfaceControl;
    s->barrierFrameNumber = frameNumber;

    registerSurfaceControlForCallback(sc);
    return *this;
}

SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::reparent(
        const sp<SurfaceControl>& sc, const sp<SurfaceControl>& newParent) {
    layer_state_t* s = getLayerState(sc);
Loading