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

Commit 87dd4664 authored by Riddle Hsu's avatar Riddle Hsu Committed by Android (Google) Code Review
Browse files

Merge "Remove enabled flag explicit_refresh_rate_hints" into main

parents 5fae7137 e820781d
Loading
Loading
Loading
Loading
+0 −8
Original line number Diff line number Diff line
@@ -11,14 +11,6 @@ flag {
    bug: "292032926"
}

flag {
    namespace: "window_surfaces"
    name: "explicit_refresh_rate_hints"
    description: "Performance related hints during transitions"
    is_fixed_read_only: true
    bug: "300019131"
}

flag {
    namespace: "window_surfaces"
    name: "delete_capture_display"
+0 −3
Original line number Diff line number Diff line
@@ -401,9 +401,6 @@ public abstract class WMShellBaseModule {
            ShellInit shellInit,
            ShellCommandHandler shellCommandHandler,
            RootTaskDisplayAreaOrganizer rootTdaOrganizer) {
        if (!com.android.window.flags.Flags.explicitRefreshRateHints()) {
            return Optional.empty();
        }
        final PerfHintController perfHintController =
                new PerfHintController(context, shellInit, shellCommandHandler, rootTdaOrganizer);
        return Optional.of(perfHintController.getHinter());
+0 −13
Original line number Diff line number Diff line
@@ -159,7 +159,6 @@ import static com.android.server.wm.utils.DisplayInfoOverrides.WM_OVERRIDE_FIELD
import static com.android.server.wm.utils.DisplayInfoOverrides.copyDisplayInfoFields;
import static com.android.server.wm.utils.RegionUtils.forEachRectReverse;
import static com.android.server.wm.utils.RegionUtils.rectListToRegion;
import static com.android.window.flags.Flags.explicitRefreshRateHints;

import android.annotation.IntDef;
import android.annotation.NonNull;
@@ -3426,14 +3425,6 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
        if (!mWmService.mSupportsHighPerfTransitions) {
            return;
        }
        if (!explicitRefreshRateHints()) {
            if (enable) {
                getPendingTransaction().setEarlyWakeupStart();
            } else {
                getPendingTransaction().setEarlyWakeupEnd();
            }
            return;
        }
        if (enable) {
            if (mTransitionPrefSession == null) {
                mTransitionPrefSession = mWmService.mSystemPerformanceHinter.createSession(
@@ -3446,10 +3437,6 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
    }

    void enableHighFrameRate(boolean enable) {
        if (!explicitRefreshRateHints()) {
            // Done by RefreshRatePolicy.
            return;
        }
        if (enable) {
            if (mHighFrameRateSession == null) {
                mHighFrameRateSession = mWmService.mSystemPerformanceHinter.createSession(
+3 −39
Original line number Diff line number Diff line
@@ -19,8 +19,6 @@ package com.android.server.wm;
import static android.hardware.display.DisplayManager.SWITCHING_TYPE_NONE;
import static android.hardware.display.DisplayManager.SWITCHING_TYPE_RENDER_FRAME_RATE_ONLY;

import static com.android.window.flags.Flags.explicitRefreshRateHints;

import android.hardware.display.DisplayManager;
import android.view.Display;
import android.view.Display.Mode;
@@ -60,7 +58,6 @@ class RefreshRatePolicy {
    }

    private final DisplayInfo mDisplayInfo;
    private final Mode mDefaultMode;
    private final Mode mLowRefreshRateMode;
    private final PackageRefreshRate mNonHighRefreshRatePackages = new PackageRefreshRate();
    private final HighRefreshRateDenylist mHighRefreshRateDenylist;
@@ -92,8 +89,7 @@ class RefreshRatePolicy {
    RefreshRatePolicy(WindowManagerService wmService, DisplayInfo displayInfo,
            HighRefreshRateDenylist denylist) {
        mDisplayInfo = displayInfo;
        mDefaultMode = displayInfo.getDefaultMode();
        mLowRefreshRateMode = findLowRefreshRateMode(displayInfo, mDefaultMode);
        mLowRefreshRateMode = findLowRefreshRateMode(displayInfo);
        mHighRefreshRateDenylist = denylist;
        mWmService = wmService;
    }
@@ -102,7 +98,8 @@ class RefreshRatePolicy {
     * Finds the mode id with the lowest refresh rate which is >= 60hz and same resolution as the
     * default mode.
     */
    private Mode findLowRefreshRateMode(DisplayInfo displayInfo, Mode defaultMode) {
    private Mode findLowRefreshRateMode(DisplayInfo displayInfo) {
        final Mode defaultMode = displayInfo.getDefaultMode();
        float[] refreshRates = displayInfo.getDefaultRefreshRates();
        float bestRefreshRate = defaultMode.getRefreshRate();
        mMinSupportedRefreshRate = bestRefreshRate;
@@ -135,33 +132,6 @@ class RefreshRatePolicy {
            // Unspecified, use default mode.
            return 0;
        }

        // If app is animating, it's not able to control refresh rate because we want the animation
        // to run in default refresh rate. But if the display size of default mode is different
        // from the using preferred mode, then still keep the preferred mode to avoid disturbing
        // the animation.
        if (!explicitRefreshRateHints() && w.isAnimationRunningSelfOrParent()) {
            Display.Mode preferredMode = null;
            for (Display.Mode mode : mDisplayInfo.supportedModes) {
                if (preferredDisplayModeId == mode.getModeId()) {
                    preferredMode = mode;
                    break;
                }
            }
            if (preferredMode != null) {
                final int pW = preferredMode.getPhysicalWidth();
                final int pH = preferredMode.getPhysicalHeight();
                if ((pW != mDefaultMode.getPhysicalWidth()
                        || pH != mDefaultMode.getPhysicalHeight())
                        && pW == mDisplayInfo.getNaturalWidth()
                        && pH == mDisplayInfo.getNaturalHeight()) {
                    // Prefer not to change display size when animating.
                    return preferredDisplayModeId;
                }
            }
            return 0;
        }

        return preferredDisplayModeId;
    }

@@ -264,12 +234,6 @@ class RefreshRatePolicy {
            return w.mFrameRateVote.reset();
        }

        // If app is animating, it's not able to control refresh rate because we want the animation
        // to run in default refresh rate.
        if (!explicitRefreshRateHints() && w.isAnimationRunningSelfOrParent()) {
            return w.mFrameRateVote.reset();
        }

        // If the app set a preferredDisplayModeId, the preferred refresh rate is the refresh rate
        // of that mode id.
        if (refreshRateSwitchingType != SWITCHING_TYPE_RENDER_FRAME_RATE_ONLY) {
+3 −7
Original line number Diff line number Diff line
@@ -182,7 +182,6 @@ import static com.android.server.wm.WindowStateProto.UNRESTRICTED_KEEP_CLEAR_ARE
import static com.android.server.wm.WindowStateProto.VIEW_VISIBILITY;
import static com.android.server.wm.WindowStateProto.WINDOW_CONTAINER;
import static com.android.server.wm.WindowStateProto.WINDOW_FRAMES;
import static com.android.window.flags.Flags.explicitRefreshRateHints;
import static com.android.window.flags.Flags.secureWindowState;
import static com.android.window.flags.Flags.surfaceTrustedOverlay;

@@ -5304,13 +5303,10 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
        if (voteChanged) {
            getPendingTransaction()
                    .setFrameRate(mSurfaceControl, mFrameRateVote.mRefreshRate,
                        mFrameRateVote.mCompatibility, Surface.CHANGE_FRAME_RATE_ALWAYS);
            if (explicitRefreshRateHints()) {
                getPendingTransaction().setFrameRateSelectionStrategy(mSurfaceControl,
                            mFrameRateVote.mCompatibility, Surface.CHANGE_FRAME_RATE_ALWAYS)
                    .setFrameRateSelectionStrategy(mSurfaceControl,
                            mFrameRateVote.mSelectionStrategy);
        }

        }
    }

    private void updateScaleIfNeeded() {
Loading