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

Commit 0ec2918d authored by Alec Mouri's avatar Alec Mouri Committed by Automerger Merge Worker
Browse files

Merge "Set the render rate on the created surface frame instead of the old...

Merge "Set the render rate on the created surface frame instead of the old one." into sc-dev am: 95a8eac5

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/13563910

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Icb625b74fb97e30041b623c99388e8fb7677aece
parents dd09eb75 95a8eac5
Loading
Loading
Loading
Loading
+3 −6
Original line number Diff line number Diff line
@@ -236,10 +236,6 @@ void BufferStateLayer::pushPendingState() {
bool BufferStateLayer::applyPendingStates(Layer::State* stateToCommit) {
    mCurrentStateModified = mCurrentState.modified;
    bool stateUpdateAvailable = Layer::applyPendingStates(stateToCommit);
    if (stateUpdateAvailable && mCallbackHandleAcquireTime != -1) {
        // Update the acquire fence time if we have a buffer
        mSurfaceFrame->setAcquireFenceTime(mCallbackHandleAcquireTime);
    }
    mCurrentStateModified = stateUpdateAvailable && mCurrentStateModified;
    mCurrentState.modified = false;
    return stateUpdateAvailable;
@@ -612,11 +608,12 @@ bool BufferStateLayer::hasFrameUpdate() const {
}

std::optional<nsecs_t> BufferStateLayer::nextPredictedPresentTime() const {
    if (!getDrawingState().isAutoTimestamp || !mSurfaceFrame) {
    const State& drawingState(getDrawingState());
    if (!drawingState.isAutoTimestamp || !drawingState.bufferSurfaceFrameTX) {
        return std::nullopt;
    }

    return mSurfaceFrame->getPredictions().presentTime;
    return drawingState.bufferSurfaceFrameTX->getPredictions().presentTime;
}

status_t BufferStateLayer::updateTexImage(bool& /*recomputeVisibleRegions*/, nsecs_t latchTime,
+2 −2
Original line number Diff line number Diff line
@@ -1583,7 +1583,7 @@ std::shared_ptr<frametimeline::SurfaceFrame> Layer::createSurfaceFrameForTransac
    surfaceFrame->setAcquireFenceTime(postTime);
    const auto fps = mFlinger->mScheduler->getFrameRateOverride(getOwnerUid());
    if (fps) {
        mSurfaceFrame->setRenderRate(*fps);
        surfaceFrame->setRenderRate(*fps);
    }
    onSurfaceFrameCreated(surfaceFrame);
    return surfaceFrame;
@@ -1598,7 +1598,7 @@ std::shared_ptr<frametimeline::SurfaceFrame> Layer::createSurfaceFrameForBuffer(
    surfaceFrame->setActualQueueTime(queueTime);
    const auto fps = mFlinger->mScheduler->getFrameRateOverride(getOwnerUid());
    if (fps) {
        mSurfaceFrame->setRenderRate(*fps);
        surfaceFrame->setRenderRate(*fps);
    }
    // TODO(b/178542907): Implement onSurfaceFrameCreated for BQLayer as well.
    onSurfaceFrameCreated(surfaceFrame);
+0 −3
Original line number Diff line number Diff line
@@ -1145,9 +1145,6 @@ protected:
    // Window types from WindowManager.LayoutParams
    const InputWindowInfo::Type mWindowType;

    // Can only be accessed with the SF state lock held.
    std::shared_ptr<frametimeline::SurfaceFrame> mSurfaceFrame;

    // The owner of the layer. If created from a non system process, it will be the calling uid.
    // If created from a system process, the value can be passed in.
    uid_t mOwnerUid;