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

Commit f58c14b3 authored by Marissa Wall's avatar Marissa Wall
Browse files

blast: Append "_legacy" to old buffer state values

As we move from BufferQueueLayer to BufferStateLayer, some
layer state fields are used by both layer types and some
are used exclusively by one type of layer. Append "_legacy"
to all fields that are NOT used by BufferStateLayer.

Bug: 80477568
Test: Transaction_test.cpp
Change-Id: Id8bf27f5b68c00592136e4336442a5d388f35779
parent 1130324c
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -489,7 +489,7 @@ void Replayer::setCrop(SurfaceComposerClient::Transaction& t,

    Rect r = Rect(cc.rectangle().left(), cc.rectangle().top(), cc.rectangle().right(),
            cc.rectangle().bottom());
    t.setCrop(mLayers[id], r);
    t.setCrop_legacy(mLayers[id], r);
}

void Replayer::setFinalCrop(SurfaceComposerClient::Transaction& t,
@@ -499,7 +499,7 @@ void Replayer::setFinalCrop(SurfaceComposerClient::Transaction& t,
            fcc.rectangle().bottom());
    Rect r = Rect(fcc.rectangle().left(), fcc.rectangle().top(), fcc.rectangle().right(),
            fcc.rectangle().bottom());
    t.setFinalCrop(mLayers[id], r);
    t.setFinalCrop_legacy(mLayers[id], r);
}

void Replayer::setMatrix(SurfaceComposerClient::Transaction& t,
@@ -570,7 +570,7 @@ void Replayer::setDeferredTransaction(SurfaceComposerClient::Transaction& t,

    auto handle = mLayers[dtc.layer_id()]->getHandle();

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

void Replayer::setDisplaySurface(SurfaceComposerClient::Transaction& t,
+21 −22
Original line number Diff line number Diff line
@@ -37,13 +37,13 @@ status_t layer_state_t::write(Parcel& output) const
    output.writeUint32(mask);
    *reinterpret_cast<layer_state_t::matrix22_t *>(
            output.writeInplace(sizeof(layer_state_t::matrix22_t))) = matrix;
    output.write(crop);
    output.write(finalCrop);
    output.writeStrongBinder(barrierHandle);
    output.write(crop_legacy);
    output.write(finalCrop_legacy);
    output.writeStrongBinder(barrierHandle_legacy);
    output.writeStrongBinder(reparentHandle);
    output.writeUint64(frameNumber);
    output.writeUint64(frameNumber_legacy);
    output.writeInt32(overrideScalingMode);
    output.writeStrongBinder(IInterface::asBinder(barrierGbp));
    output.writeStrongBinder(IInterface::asBinder(barrierGbp_legacy));
    output.writeStrongBinder(relativeLayerHandle);
    output.writeStrongBinder(parentHandleForChild);
    output.writeFloat(color.r);
@@ -72,14 +72,13 @@ status_t layer_state_t::read(const Parcel& input)
    } else {
        return BAD_VALUE;
    }
    input.read(crop);
    input.read(finalCrop);
    barrierHandle = input.readStrongBinder();
    input.read(crop_legacy);
    input.read(finalCrop_legacy);
    barrierHandle_legacy = input.readStrongBinder();
    reparentHandle = input.readStrongBinder();
    frameNumber = input.readUint64();
    frameNumber_legacy = input.readUint64();
    overrideScalingMode = input.readInt32();
    barrierGbp =
        interface_cast<IGraphicBufferProducer>(input.readStrongBinder());
    barrierGbp_legacy = interface_cast<IGraphicBufferProducer>(input.readStrongBinder());
    relativeLayerHandle = input.readStrongBinder();
    parentHandleForChild = input.readStrongBinder();
    color.r = input.readFloat();
@@ -194,19 +193,19 @@ void layer_state_t::merge(const layer_state_t& other) {
        what |= eLayerStackChanged;
        layerStack = other.layerStack;
    }
    if (other.what & eCropChanged) {
        what |= eCropChanged;
        crop = other.crop;
    if (other.what & eCropChanged_legacy) {
        what |= eCropChanged_legacy;
        crop_legacy = other.crop_legacy;
    }
    if (other.what & eDeferTransaction) {
        what |= eDeferTransaction;
        barrierHandle = other.barrierHandle;
        barrierGbp = other.barrierGbp;
        frameNumber = other.frameNumber;
    if (other.what & eDeferTransaction_legacy) {
        what |= eDeferTransaction_legacy;
        barrierHandle_legacy = other.barrierHandle_legacy;
        barrierGbp_legacy = other.barrierGbp_legacy;
        frameNumber_legacy = other.frameNumber_legacy;
    }
    if (other.what & eFinalCropChanged) {
        what |= eFinalCropChanged;
        finalCrop = other.finalCrop;
    if (other.what & eFinalCropChanged_legacy) {
        what |= eFinalCropChanged_legacy;
        finalCrop_legacy = other.finalCrop_legacy;
    }
    if (other.what & eOverrideScalingModeChanged) {
        what |= eOverrideScalingModeChanged;
+21 −18
Original line number Diff line number Diff line
@@ -344,54 +344,57 @@ SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setMatri
    return *this;
}

SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setCrop(
SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setCrop_legacy(
        const sp<SurfaceControl>& sc, const Rect& crop) {
    layer_state_t* s = getLayerState(sc);
    if (!s) {
        mStatus = BAD_INDEX;
        return *this;
    }
    s->what |= layer_state_t::eCropChanged;
    s->crop = crop;
    s->what |= layer_state_t::eCropChanged_legacy;
    s->crop_legacy = crop;
    return *this;
}

SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setFinalCrop(const sp<SurfaceControl>& sc, const Rect& crop) {
SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setFinalCrop_legacy(
        const sp<SurfaceControl>& sc, const Rect& crop) {
    layer_state_t* s = getLayerState(sc);
    if (!s) {
        mStatus = BAD_INDEX;
        return *this;
    }
    s->what |= layer_state_t::eFinalCropChanged;
    s->finalCrop = crop;
    s->what |= layer_state_t::eFinalCropChanged_legacy;
    s->finalCrop_legacy = crop;
    return *this;
}

SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::deferTransactionUntil(
        const sp<SurfaceControl>& sc,
        const sp<IBinder>& handle, uint64_t frameNumber) {
SurfaceComposerClient::Transaction&
SurfaceComposerClient::Transaction::deferTransactionUntil_legacy(const sp<SurfaceControl>& sc,
                                                                 const sp<IBinder>& handle,
                                                                 uint64_t frameNumber) {
    layer_state_t* s = getLayerState(sc);
    if (!s) {
        mStatus = BAD_INDEX;
        return *this;
    }
    s->what |= layer_state_t::eDeferTransaction;
    s->barrierHandle = handle;
    s->frameNumber = frameNumber;
    s->what |= layer_state_t::eDeferTransaction_legacy;
    s->barrierHandle_legacy = handle;
    s->frameNumber_legacy = frameNumber;
    return *this;
}

SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::deferTransactionUntil(
        const sp<SurfaceControl>& sc,
        const sp<Surface>& barrierSurface, uint64_t frameNumber) {
SurfaceComposerClient::Transaction&
SurfaceComposerClient::Transaction::deferTransactionUntil_legacy(const sp<SurfaceControl>& sc,
                                                                 const sp<Surface>& barrierSurface,
                                                                 uint64_t frameNumber) {
    layer_state_t* s = getLayerState(sc);
    if (!s) {
        mStatus = BAD_INDEX;
        return *this;
    }
    s->what |= layer_state_t::eDeferTransaction;
    s->barrierGbp = barrierSurface->getIGraphicBufferProducer();
    s->frameNumber = frameNumber;
    s->what |= layer_state_t::eDeferTransaction_legacy;
    s->barrierGbp_legacy = barrierSurface->getIGraphicBufferProducer();
    s->frameNumber_legacy = frameNumber;
    return *this;
}

+11 −11
Original line number Diff line number Diff line
@@ -51,9 +51,9 @@ struct layer_state_t {
        eTransparentRegionChanged = 0x00000020,
        eFlagsChanged = 0x00000040,
        eLayerStackChanged = 0x00000080,
        eCropChanged = 0x00000100,
        eDeferTransaction = 0x00000200,
        eFinalCropChanged = 0x00000400,
        eCropChanged_legacy = 0x00000100,
        eDeferTransaction_legacy = 0x00000200,
        eFinalCropChanged_legacy = 0x00000400,
        eOverrideScalingModeChanged = 0x00000800,
        eGeometryAppliesWithResize = 0x00001000,
        eReparentChildren = 0x00002000,
@@ -76,9 +76,9 @@ struct layer_state_t {
            flags(0),
            mask(0),
            reserved(0),
            crop(Rect::INVALID_RECT),
            finalCrop(Rect::INVALID_RECT),
            frameNumber(0),
            crop_legacy(Rect::INVALID_RECT),
            finalCrop_legacy(Rect::INVALID_RECT),
            frameNumber_legacy(0),
            overrideScalingMode(-1) {
        matrix.dsdx = matrix.dtdy = 1.0f;
        matrix.dsdy = matrix.dtdx = 0.0f;
@@ -107,14 +107,14 @@ struct layer_state_t {
    uint8_t mask;
    uint8_t reserved;
    matrix22_t matrix;
    Rect crop;
    Rect finalCrop;
    sp<IBinder> barrierHandle;
    Rect crop_legacy;
    Rect finalCrop_legacy;
    sp<IBinder> barrierHandle_legacy;
    sp<IBinder> reparentHandle;
    uint64_t frameNumber;
    uint64_t frameNumber_legacy;
    int32_t overrideScalingMode;

    sp<IGraphicBufferProducer> barrierGbp;
    sp<IGraphicBufferProducer> barrierGbp_legacy;

    sp<IBinder> relativeLayerHandle;

+8 −9
Original line number Diff line number Diff line
@@ -200,20 +200,19 @@ public:
                float alpha);
        Transaction& setMatrix(const sp<SurfaceControl>& sc,
                float dsdx, float dtdx, float dtdy, float dsdy);
        Transaction& setCrop(const sp<SurfaceControl>& sc, const Rect& crop);
        Transaction& setFinalCrop(const sp<SurfaceControl>& sc, const Rect& crop);
        Transaction& setCrop_legacy(const sp<SurfaceControl>& sc, const Rect& crop);
        Transaction& setFinalCrop_legacy(const sp<SurfaceControl>& sc, const Rect& crop);
        Transaction& setLayerStack(const sp<SurfaceControl>& sc, uint32_t layerStack);
        // Defers applying any changes made in this transaction until the Layer
        // identified by handle reaches the given frameNumber. If the Layer identified
        // by handle is removed, then we will apply this transaction regardless of
        // what frame number has been reached.
        Transaction& deferTransactionUntil(const sp<SurfaceControl>& sc,
                const sp<IBinder>& handle,
                uint64_t frameNumber);
        // A variant of deferTransactionUntil which identifies the Layer we wait for by
        Transaction& deferTransactionUntil_legacy(const sp<SurfaceControl>& sc,
                                                  const sp<IBinder>& handle, uint64_t frameNumber);
        // A variant of deferTransactionUntil_legacy which identifies the Layer we wait for by
        // Surface instead of Handle. Useful for clients which may not have the
        // SurfaceControl for some of their Surfaces. Otherwise behaves identically.
        Transaction& deferTransactionUntil(const sp<SurfaceControl>& sc,
        Transaction& deferTransactionUntil_legacy(const sp<SurfaceControl>& sc,
                                                  const sp<Surface>& barrierSurface,
                                                  uint64_t frameNumber);
        // Reparents all children of this layer to the new parent handle.
Loading