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

Commit 95a8eac5 authored by Alec Mouri's avatar Alec Mouri Committed by Android (Google) Code Review
Browse files

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

parents c789c905 819f630c
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;