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

Commit 4904eb85 authored by Valerie Hau's avatar Valerie Hau Committed by Android (Google) Code Review
Browse files

Merge "Adding transformHint for BufferStateLayers"

parents a5636a4c 32cdc1f3
Loading
Loading
Loading
Loading
+3 −1
Original line number Original line Diff line number Diff line
@@ -48,6 +48,7 @@ status_t SurfaceStats::writeToParcel(Parcel* output) const {
    } else {
    } else {
        err = output->writeBool(false);
        err = output->writeBool(false);
    }
    }
    err = output->writeUint32(transformHint);
    return err;
    return err;
}
}


@@ -72,7 +73,8 @@ status_t SurfaceStats::readFromParcel(const Parcel* input) {
            return err;
            return err;
        }
        }
    }
    }
    return NO_ERROR;
    err = input->readUint32(&transformHint);
    return err;
}
}


status_t TransactionStats::writeToParcel(Parcel* output) const {
status_t TransactionStats::writeToParcel(Parcel* output) const {
+2 −1
Original line number Original line Diff line number Diff line
@@ -222,7 +222,8 @@ void TransactionCompletedListener::onTransactionCompleted(ListenerStats listener
            for (const auto& surfaceStats : transactionStats.surfaceStats) {
            for (const auto& surfaceStats : transactionStats.surfaceStats) {
                surfaceControlStats.emplace_back(surfaceControls[surfaceStats.surfaceControl],
                surfaceControlStats.emplace_back(surfaceControls[surfaceStats.surfaceControl],
                                                 surfaceStats.acquireTime,
                                                 surfaceStats.acquireTime,
                                                 surfaceStats.previousReleaseFence);
                                                 surfaceStats.previousReleaseFence,
                                                 surfaceStats.transformHint);
            }
            }


            callbackFunction(transactionStats.latchTime, transactionStats.presentFence,
            callbackFunction(transactionStats.latchTime, transactionStats.presentFence,
+7 −2
Original line number Original line Diff line number Diff line
@@ -41,12 +41,17 @@ public:
    status_t readFromParcel(const Parcel* input) override;
    status_t readFromParcel(const Parcel* input) override;


    SurfaceStats() = default;
    SurfaceStats() = default;
    SurfaceStats(const sp<IBinder>& sc, nsecs_t time, const sp<Fence>& prevReleaseFence)
    SurfaceStats(const sp<IBinder>& sc, nsecs_t time, const sp<Fence>& prevReleaseFence,
          : surfaceControl(sc), acquireTime(time), previousReleaseFence(prevReleaseFence) {}
                 uint32_t hint)
          : surfaceControl(sc),
            acquireTime(time),
            previousReleaseFence(prevReleaseFence),
            transformHint(hint) {}


    sp<IBinder> surfaceControl;
    sp<IBinder> surfaceControl;
    nsecs_t acquireTime = -1;
    nsecs_t acquireTime = -1;
    sp<Fence> previousReleaseFence;
    sp<Fence> previousReleaseFence;
    uint32_t transformHint = 0;
};
};


class TransactionStats : public Parcelable {
class TransactionStats : public Parcelable {
+6 −2
Original line number Original line Diff line number Diff line
@@ -58,12 +58,16 @@ class Region;


struct SurfaceControlStats {
struct SurfaceControlStats {
    SurfaceControlStats(const sp<SurfaceControl>& sc, nsecs_t time,
    SurfaceControlStats(const sp<SurfaceControl>& sc, nsecs_t time,
                        const sp<Fence>& prevReleaseFence)
                        const sp<Fence>& prevReleaseFence, uint32_t hint)
          : surfaceControl(sc), acquireTime(time), previousReleaseFence(prevReleaseFence) {}
          : surfaceControl(sc),
            acquireTime(time),
            previousReleaseFence(prevReleaseFence),
            transformHint(hint) {}


    sp<SurfaceControl> surfaceControl;
    sp<SurfaceControl> surfaceControl;
    nsecs_t acquireTime = -1;
    nsecs_t acquireTime = -1;
    sp<Fence> previousReleaseFence;
    sp<Fence> previousReleaseFence;
    uint32_t transformHint = 0;
};
};


using TransactionCompletedCallbackTakesContext =
using TransactionCompletedCallbackTakesContext =
+6 −3
Original line number Original line Diff line number Diff line
@@ -103,12 +103,15 @@ void BufferStateLayer::onLayerDisplayed(const sp<Fence>& releaseFence) {
    }
    }
}
}


void BufferStateLayer::setTransformHint(uint32_t /*orientation*/) const {
void BufferStateLayer::setTransformHint(uint32_t orientation) const {
    // TODO(marissaw): send the transform hint to buffer owner
    mTransformHint = orientation;
    return;
}
}


void BufferStateLayer::releasePendingBuffer(nsecs_t /*dequeueReadyTime*/) {
void BufferStateLayer::releasePendingBuffer(nsecs_t /*dequeueReadyTime*/) {
    for (const auto& handle : mDrawingState.callbackHandles) {
        handle->transformHint = mTransformHint;
    }

    mFlinger->getTransactionCompletedThread().finalizePendingCallbackHandles(
    mFlinger->getTransactionCompletedThread().finalizePendingCallbackHandles(
            mDrawingState.callbackHandles);
            mDrawingState.callbackHandles);


Loading