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

Commit bb93f20b authored by Ady Abraham's avatar Ady Abraham Committed by Automerger Merge Worker
Browse files

Merge "SF: update mDefaultDisplayTransformHint for the active display" into...

Merge "SF: update mDefaultDisplayTransformHint for the active display" into sc-v2-dev am: d0abcc68 am: 285bb2da

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

Change-Id: Ie35b71613b76e43242a9d0d56ea4e3d448171ae4
parents b3cc2e6f 285bb2da
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -2869,8 +2869,8 @@ void SurfaceFlinger::processDisplayChanged(const wp<IBinder>& displayToken,
            (currentState.orientedDisplaySpaceRect != drawingState.orientedDisplaySpaceRect)) {
            display->setProjection(currentState.orientation, currentState.layerStackSpaceRect,
                                   currentState.orientedDisplaySpaceRect);
            if (display->isPrimary()) {
                mDefaultDisplayTransformHint = display->getTransformHint();
            if (isDisplayActiveLocked(display)) {
                mActiveDisplayTransformHint = display->getTransformHint();
            }
        }
        if (currentState.width != drawingState.width ||
@@ -3349,9 +3349,9 @@ status_t SurfaceFlinger::addClientLayer(const sp<Client>& client, const sp<IBind
    composerState.state.surface = handle;
    states.add(composerState);

    lbc->updateTransformHint(mDefaultDisplayTransformHint);
    lbc->updateTransformHint(mActiveDisplayTransformHint);
    if (outTransformHint) {
        *outTransformHint = mDefaultDisplayTransformHint;
        *outTransformHint = mActiveDisplayTransformHint;
    }
    // attach this layer to the client
    client->attachLayer(handle, lbc);
@@ -4462,7 +4462,7 @@ void SurfaceFlinger::onInitializeDisplays() {
    const nsecs_t vsyncPeriod =
            display->refreshRateConfigs().getCurrentRefreshRate().getVsyncPeriod();
    mAnimFrameTracker.setDisplayRefreshPeriod(vsyncPeriod);
    mDefaultDisplayTransformHint = display->getTransformHint();
    mActiveDisplayTransformHint = display->getTransformHint();
    // Use phase of 0 since phase is not known.
    // Use latency of 0, which will snap to the ideal latency.
    DisplayStatInfo stats{0 /* vsyncTime */, vsyncPeriod};
@@ -6882,7 +6882,7 @@ sp<Layer> SurfaceFlinger::handleLayerCreatedLocked(const sp<IBinder>& handle) {
        parent->addChild(layer);
    }

    layer->updateTransformHint(mDefaultDisplayTransformHint);
    layer->updateTransformHint(mActiveDisplayTransformHint);

    if (state->initialProducer != nullptr) {
        mGraphicBufferProducerList.insert(state->initialProducer);
@@ -6929,12 +6929,12 @@ void SurfaceFlinger::onActiveDisplayChangedLocked(const sp<DisplayDevice>& activ
        return;
    }
    mActiveDisplayToken = activeDisplay->getDisplayToken();

    activeDisplay->getCompositionDisplay()->setLayerCachingTexturePoolEnabled(true);
    updateInternalDisplayVsyncLocked(activeDisplay);
    mScheduler->setModeChangePending(false);
    mScheduler->setRefreshRateConfigs(activeDisplay->holdRefreshRateConfigs());
    onActiveDisplaySizeChanged(activeDisplay);
    mActiveDisplayTransformHint = activeDisplay->getTransformHint();
}

status_t SurfaceFlinger::addWindowInfosListener(
+1 −1
Original line number Diff line number Diff line
@@ -1500,7 +1500,7 @@ private:
    auto getLayerCreatedState(const sp<IBinder>& handle);
    sp<Layer> handleLayerCreatedLocked(const sp<IBinder>& handle) REQUIRES(mStateLock);

    std::atomic<ui::Transform::RotationFlags> mDefaultDisplayTransformHint;
    std::atomic<ui::Transform::RotationFlags> mActiveDisplayTransformHint;

    void scheduleRegionSamplingThread();
    void notifyRegionSamplingThread();