Loading core/java/android/view/SurfaceControl.java +6 −18 Original line number Original line Diff line number Diff line Loading @@ -50,7 +50,6 @@ import android.graphics.Region; import android.gui.BorderSettings; import android.gui.BorderSettings; import android.gui.BoxShadowSettings; import android.gui.BoxShadowSettings; import android.gui.DropInputMode; import android.gui.DropInputMode; import android.gui.EarlyWakeupInfo; import android.gui.StalledTransactionInfo; import android.gui.StalledTransactionInfo; import android.gui.TrustedOverlay; import android.gui.TrustedOverlay; import android.hardware.DataSpace; import android.hardware.DataSpace; Loading @@ -70,7 +69,6 @@ import android.os.IBinder; import android.os.Looper; import android.os.Looper; import android.os.Parcel; import android.os.Parcel; import android.os.Parcelable; import android.os.Parcelable; import android.os.Trace; import android.util.ArrayMap; import android.util.ArrayMap; import android.util.Log; import android.util.Log; import android.util.Slog; import android.util.Slog; Loading Loading @@ -131,8 +129,8 @@ public final class SurfaceControl implements Parcelable { long otherTransactionObj); long otherTransactionObj); private static native void nativeClearTransaction(long transactionObj); private static native void nativeClearTransaction(long transactionObj); private static native void nativeSetAnimationTransaction(long transactionObj); private static native void nativeSetAnimationTransaction(long transactionObj); private static native void nativeSetEarlyWakeupStart(long transactionObj, Parcel request); private static native void nativeSetEarlyWakeupStart(long transactionObj); private static native void nativeSetEarlyWakeupEnd(long transactionObj, Parcel request); private static native void nativeSetEarlyWakeupEnd(long transactionObj); private static native long nativeGetTransactionId(long transactionObj); private static native long nativeGetTransactionId(long transactionObj); private static native void nativeSetLayer(long transactionObj, long nativeObject, int zorder); private static native void nativeSetLayer(long transactionObj, long nativeObject, int zorder); Loading Loading @@ -4126,14 +4124,8 @@ public final class SurfaceControl implements Parcelable { * @hide * @hide */ */ @RequiresPermission(Manifest.permission.WAKEUP_SURFACE_FLINGER) @RequiresPermission(Manifest.permission.WAKEUP_SURFACE_FLINGER) public Transaction setEarlyWakeupStart(@NonNull EarlyWakeupInfo info) { public Transaction setEarlyWakeupStart() { Parcel infoParcel = Parcel.obtain(); nativeSetEarlyWakeupStart(mNativeObject); info.writeToParcel(infoParcel, 0); infoParcel.setDataPosition(0); nativeSetEarlyWakeupStart(mNativeObject, infoParcel); Trace.asyncTraceForTrackBegin(Trace.TRACE_TAG_APP, "EarlyWakeup", "setEarlyWakeupStart: called by " + info.trace + " with " + info.token, 0); return this; return this; } } Loading @@ -4143,12 +4135,8 @@ public final class SurfaceControl implements Parcelable { * @hide * @hide */ */ @RequiresPermission(Manifest.permission.WAKEUP_SURFACE_FLINGER) @RequiresPermission(Manifest.permission.WAKEUP_SURFACE_FLINGER) public Transaction setEarlyWakeupEnd(@NonNull EarlyWakeupInfo info) { public Transaction setEarlyWakeupEnd() { Parcel infoParcel = Parcel.obtain(); nativeSetEarlyWakeupEnd(mNativeObject); info.writeToParcel(infoParcel, 0); infoParcel.setDataPosition(0); nativeSetEarlyWakeupEnd(mNativeObject, infoParcel); Trace.asyncTraceForTrackEnd(Trace.TRACE_TAG_APP, "EarlyWakeup", 0); return this; return this; } } Loading core/java/android/view/SyncRtSurfaceTransactionApplier.java +7 −13 Original line number Original line Diff line number Diff line Loading @@ -19,7 +19,6 @@ package android.view; import android.annotation.SuppressLint; import android.annotation.SuppressLint; import android.graphics.Matrix; import android.graphics.Matrix; import android.graphics.Rect; import android.graphics.Rect; import android.gui.EarlyWakeupInfo; import android.view.SurfaceControl.Transaction; import android.view.SurfaceControl.Transaction; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.annotations.VisibleForTesting; Loading Loading @@ -140,10 +139,10 @@ public class SyncRtSurfaceTransactionApplier { } } } } if ((params.flags & FLAG_EARLY_WAKEUP_START) != 0) { if ((params.flags & FLAG_EARLY_WAKEUP_START) != 0) { t.setEarlyWakeupStart(params.earlyWakeupInfo); t.setEarlyWakeupStart(); } } if ((params.flags & FLAG_EARLY_WAKEUP_END) != 0) { if ((params.flags & FLAG_EARLY_WAKEUP_END) != 0) { t.setEarlyWakeupEnd(params.earlyWakeupInfo); t.setEarlyWakeupEnd(); } } if ((params.flags & FLAG_OPAQUE) != 0) { if ((params.flags & FLAG_OPAQUE) != 0) { t.setOpaque(params.surface, params.opaque); t.setOpaque(params.surface, params.opaque); Loading Loading @@ -194,7 +193,6 @@ public class SyncRtSurfaceTransactionApplier { boolean visible; boolean visible; boolean opaque; boolean opaque; Transaction mergeTransaction; Transaction mergeTransaction; EarlyWakeupInfo earlyWakeupInfo; /** /** * @param surface The surface to modify. * @param surface The surface to modify. Loading Loading @@ -299,8 +297,7 @@ public class SyncRtSurfaceTransactionApplier { * wakes up earlier to compose surfaces. * wakes up earlier to compose surfaces. * @return this Builder * @return this Builder */ */ public Builder withEarlyWakeupStart(EarlyWakeupInfo earlyWakeupInfo) { public Builder withEarlyWakeupStart() { this.earlyWakeupInfo = earlyWakeupInfo; flags |= FLAG_EARLY_WAKEUP_START; flags |= FLAG_EARLY_WAKEUP_START; return this; return this; } } Loading @@ -309,8 +306,7 @@ public class SyncRtSurfaceTransactionApplier { * Removes the early wake up hint set by earlyWakeupStart. * Removes the early wake up hint set by earlyWakeupStart. * @return this Builder * @return this Builder */ */ public Builder withEarlyWakeupEnd(EarlyWakeupInfo earlyWakeupInfo) { public Builder withEarlyWakeupEnd() { this.earlyWakeupInfo = earlyWakeupInfo; flags |= FLAG_EARLY_WAKEUP_END; flags |= FLAG_EARLY_WAKEUP_END; return this; return this; } } Loading @@ -331,14 +327,15 @@ public class SyncRtSurfaceTransactionApplier { public SurfaceParams build() { public SurfaceParams build() { return new SurfaceParams(surface, flags, alpha, matrix, windowCrop, layer, return new SurfaceParams(surface, flags, alpha, matrix, windowCrop, layer, cornerRadius, backgroundBlurRadius, backgroundBlurScale, visible, cornerRadius, backgroundBlurRadius, backgroundBlurScale, visible, mergeTransaction, opaque, earlyWakeupInfo); mergeTransaction, opaque); } } } } private SurfaceParams(SurfaceControl surface, int params, float alpha, Matrix matrix, private SurfaceParams(SurfaceControl surface, int params, float alpha, Matrix matrix, Rect windowCrop, int layer, float cornerRadius, Rect windowCrop, int layer, float cornerRadius, int backgroundBlurRadius, float backgroundBlurScale, boolean visible, int backgroundBlurRadius, float backgroundBlurScale, boolean visible, Transaction mergeTransaction, boolean opaque, EarlyWakeupInfo earlyWakeupInfo) { Transaction mergeTransaction, boolean opaque) { this.flags = params; this.flags = params; this.surface = surface; this.surface = surface; this.alpha = alpha; this.alpha = alpha; Loading @@ -351,7 +348,6 @@ public class SyncRtSurfaceTransactionApplier { this.visible = visible; this.visible = visible; this.mergeTransaction = mergeTransaction; this.mergeTransaction = mergeTransaction; this.opaque = opaque; this.opaque = opaque; this.earlyWakeupInfo = earlyWakeupInfo; } } private final int flags; private final int flags; Loading Loading @@ -384,7 +380,5 @@ public class SyncRtSurfaceTransactionApplier { public final Transaction mergeTransaction; public final Transaction mergeTransaction; public final boolean opaque; public final boolean opaque; public final EarlyWakeupInfo earlyWakeupInfo; } } } } core/java/android/window/SystemPerformanceHinter.java +2 −9 Original line number Original line Diff line number Diff line Loading @@ -26,8 +26,6 @@ import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.Nullable; import android.content.Context; import android.content.Context; import android.gui.EarlyWakeupInfo; import android.os.Binder; import android.os.PerformanceHintManager; import android.os.PerformanceHintManager; import android.os.Trace; import android.os.Trace; import android.util.Log; import android.util.Log; Loading Loading @@ -168,9 +166,6 @@ public class SystemPerformanceHinter { private @Nullable PerformanceHintManager.Session mAdpfSession; private @Nullable PerformanceHintManager.Session mAdpfSession; private @Nullable DisplayRootProvider mDisplayRootProvider; private @Nullable DisplayRootProvider mDisplayRootProvider; /** Token for early wakeup requests to SurfaceFlinger. */ private EarlyWakeupInfo mEarlyWakeupInfo = new EarlyWakeupInfo(); /** /** * Constructor for the hinter. * Constructor for the hinter. * @hide * @hide Loading @@ -191,8 +186,6 @@ public class SystemPerformanceHinter { mTransaction = transactionSupplier != null mTransaction = transactionSupplier != null ? transactionSupplier.get() ? transactionSupplier.get() : new SurfaceControl.Transaction(); : new SurfaceControl.Transaction(); mEarlyWakeupInfo.token = new Binder(); mEarlyWakeupInfo.trace = SystemPerformanceHinter.class.getName(); } } /** /** Loading Loading @@ -272,7 +265,7 @@ public class SystemPerformanceHinter { // Global flags // Global flags if (nowEnabled(oldGlobalFlags, newGlobalFlags, HINT_SF_EARLY_WAKEUP)) { if (nowEnabled(oldGlobalFlags, newGlobalFlags, HINT_SF_EARLY_WAKEUP)) { mTransaction.setEarlyWakeupStart(mEarlyWakeupInfo); mTransaction.setEarlyWakeupStart(); transactionChanged = true; transactionChanged = true; if (isTraceEnabled) { if (isTraceEnabled) { asyncTraceBegin(HINT_SF_EARLY_WAKEUP, Display.INVALID_DISPLAY); asyncTraceBegin(HINT_SF_EARLY_WAKEUP, Display.INVALID_DISPLAY); Loading Loading @@ -322,7 +315,7 @@ public class SystemPerformanceHinter { // Global flags // Global flags if (nowDisabled(oldGlobalFlags, newGlobalFlags, HINT_SF_EARLY_WAKEUP)) { if (nowDisabled(oldGlobalFlags, newGlobalFlags, HINT_SF_EARLY_WAKEUP)) { mTransaction.setEarlyWakeupEnd(mEarlyWakeupInfo); mTransaction.setEarlyWakeupEnd(); transactionChanged = true; transactionChanged = true; if (isTraceEnabled) { if (isTraceEnabled) { asyncTraceEnd(HINT_SF_EARLY_WAKEUP); asyncTraceEnd(HINT_SF_EARLY_WAKEUP); Loading core/jni/android_view_SurfaceControl.cpp +10 −38 Original line number Original line Diff line number Diff line Loading @@ -579,42 +579,14 @@ static void nativeSetAnimationTransaction(JNIEnv* env, jclass clazz, jlong trans transaction->setAnimationTransaction(); transaction->setAnimationTransaction(); } } static void nativeSetEarlyWakeupStart(JNIEnv* env, jclass clazz, jlong transactionObj, static void nativeSetEarlyWakeupStart(JNIEnv* env, jclass clazz, jlong transactionObj) { jobject infoObj) { Parcel* infoParcel = parcelForJavaObject(env, infoObj); if (infoParcel == NULL) { doThrowNPE(env); return; } gui::EarlyWakeupInfo earlyWakeupInfo; status_t err = earlyWakeupInfo.readFromParcel(infoParcel); if (err != NO_ERROR) { jniThrowException(env, "java/lang/IllegalArgumentException", "EarlyWakeupInfo parcel has wrong format"); return; } auto transaction = reinterpret_cast<SurfaceComposerClient::Transaction*>(transactionObj); auto transaction = reinterpret_cast<SurfaceComposerClient::Transaction*>(transactionObj); transaction->setEarlyWakeupStart(earlyWakeupInfo); transaction->setEarlyWakeupStart(); } static void nativeSetEarlyWakeupEnd(JNIEnv* env, jclass clazz, jlong transactionObj, jobject infoObj) { Parcel* infoParcel = parcelForJavaObject(env, infoObj); if (infoParcel == NULL) { doThrowNPE(env); return; } gui::EarlyWakeupInfo earlyWakeupInfo; status_t err = earlyWakeupInfo.readFromParcel(infoParcel); if (err != NO_ERROR) { jniThrowException(env, "java/lang/IllegalArgumentException", "EarlyWakeupInfo parcel has wrong format"); return; } } static void nativeSetEarlyWakeupEnd(JNIEnv* env, jclass clazz, jlong transactionObj) { auto transaction = reinterpret_cast<SurfaceComposerClient::Transaction*>(transactionObj); auto transaction = reinterpret_cast<SurfaceComposerClient::Transaction*>(transactionObj); transaction->setEarlyWakeupEnd(earlyWakeupInfo); transaction->setEarlyWakeupEnd(); } } static jlong nativeGetTransactionId(JNIEnv* env, jclass clazz, jlong transactionObj) { static jlong nativeGetTransactionId(JNIEnv* env, jclass clazz, jlong transactionObj) { Loading Loading @@ -1204,8 +1176,8 @@ static void nativeSetBoxShadowSettings(JNIEnv* env, jclass clazz, jlong transact transaction->setBoxShadowSettings(ctrl, settings); transaction->setBoxShadowSettings(ctrl, settings); } } static void nativeSetBorderSettings(JNIEnv* env, jclass clazz, static void nativeSetBorderSettings(JNIEnv* env, jclass clazz, jlong transactionObj, jlong transactionObj, jlong nativeObject, jobject settingsObj) { jlong nativeObject, jobject settingsObj) { Parcel* settingsParcel = parcelForJavaObject(env, settingsObj); Parcel* settingsParcel = parcelForJavaObject(env, settingsObj); if (settingsParcel == NULL) { if (settingsParcel == NULL) { doThrowNPE(env); doThrowNPE(env); Loading Loading @@ -2599,9 +2571,9 @@ static const JNINativeMethod sSurfaceControlMethods[] = { (void*)nativeMergeTransaction }, (void*)nativeMergeTransaction }, {"nativeSetAnimationTransaction", "(J)V", {"nativeSetAnimationTransaction", "(J)V", (void*)nativeSetAnimationTransaction }, (void*)nativeSetAnimationTransaction }, {"nativeSetEarlyWakeupStart", "(JLandroid/os/Parcel;)V", {"nativeSetEarlyWakeupStart", "(J)V", (void*)nativeSetEarlyWakeupStart }, (void*)nativeSetEarlyWakeupStart }, {"nativeSetEarlyWakeupEnd", "(JLandroid/os/Parcel;)V", {"nativeSetEarlyWakeupEnd", "(J)V", (void*)nativeSetEarlyWakeupEnd }, (void*)nativeSetEarlyWakeupEnd }, {"nativeGetTransactionId", "(J)J", {"nativeGetTransactionId", "(J)J", (void*)nativeGetTransactionId }, (void*)nativeGetTransactionId }, Loading core/tests/coretests/src/android/window/SystemPerformanceHinterTests.java +13 −15 Original line number Original line Diff line number Diff line Loading @@ -37,8 +37,6 @@ import static org.mockito.Mockito.never; import static org.mockito.Mockito.reset; import static org.mockito.Mockito.reset; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify; import android.gui.EarlyWakeupInfo; import android.os.Binder; import android.os.PerformanceHintManager; import android.os.PerformanceHintManager; import android.platform.test.annotations.Presubmit; import android.platform.test.annotations.Presubmit; import android.view.SurfaceControl; import android.view.SurfaceControl; Loading Loading @@ -192,7 +190,7 @@ public class SystemPerformanceHinterTests { assertEquals(0, mRootProvider.getCount); assertEquals(0, mRootProvider.getCount); // Verify we call SF // Verify we call SF verify(mTransaction).setEarlyWakeupStart(any(EarlyWakeupInfo.class)); verify(mTransaction).setEarlyWakeupStart(); verify(mTransaction).applyAsyncUnsafe(); verify(mTransaction).applyAsyncUnsafe(); } } Loading @@ -204,7 +202,7 @@ public class SystemPerformanceHinterTests { session.close(); session.close(); // Verify we call SF // Verify we call SF verify(mTransaction).setEarlyWakeupEnd(any(EarlyWakeupInfo.class)); verify(mTransaction).setEarlyWakeupEnd(); verify(mTransaction).applyAsyncUnsafe(); verify(mTransaction).applyAsyncUnsafe(); } } Loading Loading @@ -251,7 +249,7 @@ public class SystemPerformanceHinterTests { eq(mDefaultDisplayRoot), eq(mDefaultDisplayRoot), eq(FRAME_RATE_CATEGORY_HIGH), eq(FRAME_RATE_CATEGORY_HIGH), eq(false)); eq(false)); verify(mTransaction).setEarlyWakeupStart(any(EarlyWakeupInfo.class)); verify(mTransaction).setEarlyWakeupStart(); verify(mTransaction).applyAsyncUnsafe(); verify(mTransaction).applyAsyncUnsafe(); verify(mAdpfSession).sendHint(eq(CPU_LOAD_UP)); verify(mAdpfSession).sendHint(eq(CPU_LOAD_UP)); } } Loading @@ -272,7 +270,7 @@ public class SystemPerformanceHinterTests { eq(mDefaultDisplayRoot), eq(mDefaultDisplayRoot), eq(FRAME_RATE_CATEGORY_DEFAULT), eq(FRAME_RATE_CATEGORY_DEFAULT), eq(false)); eq(false)); verify(mTransaction).setEarlyWakeupEnd(any(EarlyWakeupInfo.class)); verify(mTransaction).setEarlyWakeupEnd(); verify(mTransaction).applyAsyncUnsafe(); verify(mTransaction).applyAsyncUnsafe(); verify(mAdpfSession).sendHint(eq(CPU_LOAD_RESET)); verify(mAdpfSession).sendHint(eq(CPU_LOAD_RESET)); } } Loading @@ -293,7 +291,7 @@ public class SystemPerformanceHinterTests { eq(mDefaultDisplayRoot), eq(mDefaultDisplayRoot), eq(FRAME_RATE_CATEGORY_DEFAULT), eq(FRAME_RATE_CATEGORY_DEFAULT), eq(false)); eq(false)); verify(mTransaction).setEarlyWakeupEnd(any(EarlyWakeupInfo.class)); verify(mTransaction).setEarlyWakeupEnd(); verify(mTransaction).applyAsyncUnsafe(); verify(mTransaction).applyAsyncUnsafe(); verify(mAdpfSession).sendHint(eq(CPU_LOAD_RESET)); verify(mAdpfSession).sendHint(eq(CPU_LOAD_RESET)); } } Loading @@ -312,7 +310,7 @@ public class SystemPerformanceHinterTests { eq(mDefaultDisplayRoot), eq(mDefaultDisplayRoot), eq(FRAME_RATE_CATEGORY_HIGH), eq(FRAME_RATE_CATEGORY_HIGH), eq(false)); eq(false)); verify(mTransaction).setEarlyWakeupStart(any(EarlyWakeupInfo.class)); verify(mTransaction).setEarlyWakeupStart(); verify(mTransaction).applyAsyncUnsafe(); verify(mTransaction).applyAsyncUnsafe(); verify(mAdpfSession).sendHint(eq(CPU_LOAD_UP)); verify(mAdpfSession).sendHint(eq(CPU_LOAD_UP)); reset(mTransaction); reset(mTransaction); Loading @@ -323,7 +321,7 @@ public class SystemPerformanceHinterTests { // Verify we never call SF and perf manager since session1 is already running // Verify we never call SF and perf manager since session1 is already running verify(mTransaction, never()).setFrameRateSelectionStrategy(any(), anyInt()); verify(mTransaction, never()).setFrameRateSelectionStrategy(any(), anyInt()); verify(mTransaction, never()).setFrameRateCategory(any(), anyInt(), anyBoolean()); verify(mTransaction, never()).setFrameRateCategory(any(), anyInt(), anyBoolean()); verify(mTransaction, never()).setEarlyWakeupEnd(any(EarlyWakeupInfo.class)); verify(mTransaction, never()).setEarlyWakeupEnd(); verify(mTransaction, never()).applyAsyncUnsafe(); verify(mTransaction, never()).applyAsyncUnsafe(); verify(mAdpfSession, never()).sendHint(anyInt()); verify(mAdpfSession, never()).sendHint(anyInt()); Loading @@ -331,7 +329,7 @@ public class SystemPerformanceHinterTests { // Verify we have not cleaned up because session1 is still running // Verify we have not cleaned up because session1 is still running verify(mTransaction, never()).setFrameRateSelectionStrategy(any(), anyInt()); verify(mTransaction, never()).setFrameRateSelectionStrategy(any(), anyInt()); verify(mTransaction, never()).setFrameRateCategory(any(), anyInt(), anyBoolean()); verify(mTransaction, never()).setFrameRateCategory(any(), anyInt(), anyBoolean()); verify(mTransaction, never()).setEarlyWakeupEnd(any(EarlyWakeupInfo.class)); verify(mTransaction, never()).setEarlyWakeupEnd(); verify(mTransaction, never()).applyAsyncUnsafe(); verify(mTransaction, never()).applyAsyncUnsafe(); verify(mAdpfSession, never()).sendHint(anyInt()); verify(mAdpfSession, never()).sendHint(anyInt()); Loading @@ -344,7 +342,7 @@ public class SystemPerformanceHinterTests { eq(mDefaultDisplayRoot), eq(mDefaultDisplayRoot), eq(FRAME_RATE_CATEGORY_DEFAULT), eq(FRAME_RATE_CATEGORY_DEFAULT), eq(false)); eq(false)); verify(mTransaction).setEarlyWakeupEnd(any(EarlyWakeupInfo.class)); verify(mTransaction).setEarlyWakeupEnd(); verify(mTransaction).applyAsyncUnsafe(); verify(mTransaction).applyAsyncUnsafe(); verify(mAdpfSession).sendHint(eq(CPU_LOAD_RESET)); verify(mAdpfSession).sendHint(eq(CPU_LOAD_RESET)); } } Loading @@ -363,7 +361,7 @@ public class SystemPerformanceHinterTests { eq(mDefaultDisplayRoot), eq(mDefaultDisplayRoot), eq(FRAME_RATE_CATEGORY_HIGH), eq(FRAME_RATE_CATEGORY_HIGH), eq(false)); eq(false)); verify(mTransaction).setEarlyWakeupStart(any(EarlyWakeupInfo.class)); verify(mTransaction).setEarlyWakeupStart(); verify(mTransaction).applyAsyncUnsafe(); verify(mTransaction).applyAsyncUnsafe(); verify(mAdpfSession).sendHint(eq(CPU_LOAD_UP)); verify(mAdpfSession).sendHint(eq(CPU_LOAD_UP)); reset(mTransaction); reset(mTransaction); Loading @@ -379,7 +377,7 @@ public class SystemPerformanceHinterTests { eq(mSecondaryDisplayRoot), eq(mSecondaryDisplayRoot), eq(FRAME_RATE_CATEGORY_HIGH), eq(FRAME_RATE_CATEGORY_HIGH), eq(false)); eq(false)); verify(mTransaction, never()).setEarlyWakeupStart(any(EarlyWakeupInfo.class)); verify(mTransaction, never()).setEarlyWakeupStart(); verify(mTransaction).applyAsyncUnsafe(); verify(mTransaction).applyAsyncUnsafe(); verify(mAdpfSession, never()).sendHint(anyInt()); verify(mAdpfSession, never()).sendHint(anyInt()); reset(mTransaction); reset(mTransaction); Loading @@ -402,7 +400,7 @@ public class SystemPerformanceHinterTests { eq(mSecondaryDisplayRoot), eq(mSecondaryDisplayRoot), anyInt(), anyInt(), eq(false)); eq(false)); verify(mTransaction, never()).setEarlyWakeupEnd(any(EarlyWakeupInfo.class)); verify(mTransaction, never()).setEarlyWakeupEnd(); verify(mTransaction).applyAsyncUnsafe(); verify(mTransaction).applyAsyncUnsafe(); verify(mAdpfSession, never()).sendHint(anyInt()); verify(mAdpfSession, never()).sendHint(anyInt()); reset(mTransaction); reset(mTransaction); Loading @@ -420,7 +418,7 @@ public class SystemPerformanceHinterTests { eq(mSecondaryDisplayRoot), eq(mSecondaryDisplayRoot), eq(FRAME_RATE_CATEGORY_DEFAULT), eq(FRAME_RATE_CATEGORY_DEFAULT), eq(false)); eq(false)); verify(mTransaction).setEarlyWakeupEnd(any(EarlyWakeupInfo.class)); verify(mTransaction).setEarlyWakeupEnd(); verify(mTransaction).applyAsyncUnsafe(); verify(mTransaction).applyAsyncUnsafe(); verify(mAdpfSession).sendHint(eq(CPU_LOAD_RESET)); verify(mAdpfSession).sendHint(eq(CPU_LOAD_RESET)); } } Loading Loading
core/java/android/view/SurfaceControl.java +6 −18 Original line number Original line Diff line number Diff line Loading @@ -50,7 +50,6 @@ import android.graphics.Region; import android.gui.BorderSettings; import android.gui.BorderSettings; import android.gui.BoxShadowSettings; import android.gui.BoxShadowSettings; import android.gui.DropInputMode; import android.gui.DropInputMode; import android.gui.EarlyWakeupInfo; import android.gui.StalledTransactionInfo; import android.gui.StalledTransactionInfo; import android.gui.TrustedOverlay; import android.gui.TrustedOverlay; import android.hardware.DataSpace; import android.hardware.DataSpace; Loading @@ -70,7 +69,6 @@ import android.os.IBinder; import android.os.Looper; import android.os.Looper; import android.os.Parcel; import android.os.Parcel; import android.os.Parcelable; import android.os.Parcelable; import android.os.Trace; import android.util.ArrayMap; import android.util.ArrayMap; import android.util.Log; import android.util.Log; import android.util.Slog; import android.util.Slog; Loading Loading @@ -131,8 +129,8 @@ public final class SurfaceControl implements Parcelable { long otherTransactionObj); long otherTransactionObj); private static native void nativeClearTransaction(long transactionObj); private static native void nativeClearTransaction(long transactionObj); private static native void nativeSetAnimationTransaction(long transactionObj); private static native void nativeSetAnimationTransaction(long transactionObj); private static native void nativeSetEarlyWakeupStart(long transactionObj, Parcel request); private static native void nativeSetEarlyWakeupStart(long transactionObj); private static native void nativeSetEarlyWakeupEnd(long transactionObj, Parcel request); private static native void nativeSetEarlyWakeupEnd(long transactionObj); private static native long nativeGetTransactionId(long transactionObj); private static native long nativeGetTransactionId(long transactionObj); private static native void nativeSetLayer(long transactionObj, long nativeObject, int zorder); private static native void nativeSetLayer(long transactionObj, long nativeObject, int zorder); Loading Loading @@ -4126,14 +4124,8 @@ public final class SurfaceControl implements Parcelable { * @hide * @hide */ */ @RequiresPermission(Manifest.permission.WAKEUP_SURFACE_FLINGER) @RequiresPermission(Manifest.permission.WAKEUP_SURFACE_FLINGER) public Transaction setEarlyWakeupStart(@NonNull EarlyWakeupInfo info) { public Transaction setEarlyWakeupStart() { Parcel infoParcel = Parcel.obtain(); nativeSetEarlyWakeupStart(mNativeObject); info.writeToParcel(infoParcel, 0); infoParcel.setDataPosition(0); nativeSetEarlyWakeupStart(mNativeObject, infoParcel); Trace.asyncTraceForTrackBegin(Trace.TRACE_TAG_APP, "EarlyWakeup", "setEarlyWakeupStart: called by " + info.trace + " with " + info.token, 0); return this; return this; } } Loading @@ -4143,12 +4135,8 @@ public final class SurfaceControl implements Parcelable { * @hide * @hide */ */ @RequiresPermission(Manifest.permission.WAKEUP_SURFACE_FLINGER) @RequiresPermission(Manifest.permission.WAKEUP_SURFACE_FLINGER) public Transaction setEarlyWakeupEnd(@NonNull EarlyWakeupInfo info) { public Transaction setEarlyWakeupEnd() { Parcel infoParcel = Parcel.obtain(); nativeSetEarlyWakeupEnd(mNativeObject); info.writeToParcel(infoParcel, 0); infoParcel.setDataPosition(0); nativeSetEarlyWakeupEnd(mNativeObject, infoParcel); Trace.asyncTraceForTrackEnd(Trace.TRACE_TAG_APP, "EarlyWakeup", 0); return this; return this; } } Loading
core/java/android/view/SyncRtSurfaceTransactionApplier.java +7 −13 Original line number Original line Diff line number Diff line Loading @@ -19,7 +19,6 @@ package android.view; import android.annotation.SuppressLint; import android.annotation.SuppressLint; import android.graphics.Matrix; import android.graphics.Matrix; import android.graphics.Rect; import android.graphics.Rect; import android.gui.EarlyWakeupInfo; import android.view.SurfaceControl.Transaction; import android.view.SurfaceControl.Transaction; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.annotations.VisibleForTesting; Loading Loading @@ -140,10 +139,10 @@ public class SyncRtSurfaceTransactionApplier { } } } } if ((params.flags & FLAG_EARLY_WAKEUP_START) != 0) { if ((params.flags & FLAG_EARLY_WAKEUP_START) != 0) { t.setEarlyWakeupStart(params.earlyWakeupInfo); t.setEarlyWakeupStart(); } } if ((params.flags & FLAG_EARLY_WAKEUP_END) != 0) { if ((params.flags & FLAG_EARLY_WAKEUP_END) != 0) { t.setEarlyWakeupEnd(params.earlyWakeupInfo); t.setEarlyWakeupEnd(); } } if ((params.flags & FLAG_OPAQUE) != 0) { if ((params.flags & FLAG_OPAQUE) != 0) { t.setOpaque(params.surface, params.opaque); t.setOpaque(params.surface, params.opaque); Loading Loading @@ -194,7 +193,6 @@ public class SyncRtSurfaceTransactionApplier { boolean visible; boolean visible; boolean opaque; boolean opaque; Transaction mergeTransaction; Transaction mergeTransaction; EarlyWakeupInfo earlyWakeupInfo; /** /** * @param surface The surface to modify. * @param surface The surface to modify. Loading Loading @@ -299,8 +297,7 @@ public class SyncRtSurfaceTransactionApplier { * wakes up earlier to compose surfaces. * wakes up earlier to compose surfaces. * @return this Builder * @return this Builder */ */ public Builder withEarlyWakeupStart(EarlyWakeupInfo earlyWakeupInfo) { public Builder withEarlyWakeupStart() { this.earlyWakeupInfo = earlyWakeupInfo; flags |= FLAG_EARLY_WAKEUP_START; flags |= FLAG_EARLY_WAKEUP_START; return this; return this; } } Loading @@ -309,8 +306,7 @@ public class SyncRtSurfaceTransactionApplier { * Removes the early wake up hint set by earlyWakeupStart. * Removes the early wake up hint set by earlyWakeupStart. * @return this Builder * @return this Builder */ */ public Builder withEarlyWakeupEnd(EarlyWakeupInfo earlyWakeupInfo) { public Builder withEarlyWakeupEnd() { this.earlyWakeupInfo = earlyWakeupInfo; flags |= FLAG_EARLY_WAKEUP_END; flags |= FLAG_EARLY_WAKEUP_END; return this; return this; } } Loading @@ -331,14 +327,15 @@ public class SyncRtSurfaceTransactionApplier { public SurfaceParams build() { public SurfaceParams build() { return new SurfaceParams(surface, flags, alpha, matrix, windowCrop, layer, return new SurfaceParams(surface, flags, alpha, matrix, windowCrop, layer, cornerRadius, backgroundBlurRadius, backgroundBlurScale, visible, cornerRadius, backgroundBlurRadius, backgroundBlurScale, visible, mergeTransaction, opaque, earlyWakeupInfo); mergeTransaction, opaque); } } } } private SurfaceParams(SurfaceControl surface, int params, float alpha, Matrix matrix, private SurfaceParams(SurfaceControl surface, int params, float alpha, Matrix matrix, Rect windowCrop, int layer, float cornerRadius, Rect windowCrop, int layer, float cornerRadius, int backgroundBlurRadius, float backgroundBlurScale, boolean visible, int backgroundBlurRadius, float backgroundBlurScale, boolean visible, Transaction mergeTransaction, boolean opaque, EarlyWakeupInfo earlyWakeupInfo) { Transaction mergeTransaction, boolean opaque) { this.flags = params; this.flags = params; this.surface = surface; this.surface = surface; this.alpha = alpha; this.alpha = alpha; Loading @@ -351,7 +348,6 @@ public class SyncRtSurfaceTransactionApplier { this.visible = visible; this.visible = visible; this.mergeTransaction = mergeTransaction; this.mergeTransaction = mergeTransaction; this.opaque = opaque; this.opaque = opaque; this.earlyWakeupInfo = earlyWakeupInfo; } } private final int flags; private final int flags; Loading Loading @@ -384,7 +380,5 @@ public class SyncRtSurfaceTransactionApplier { public final Transaction mergeTransaction; public final Transaction mergeTransaction; public final boolean opaque; public final boolean opaque; public final EarlyWakeupInfo earlyWakeupInfo; } } } }
core/java/android/window/SystemPerformanceHinter.java +2 −9 Original line number Original line Diff line number Diff line Loading @@ -26,8 +26,6 @@ import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.Nullable; import android.content.Context; import android.content.Context; import android.gui.EarlyWakeupInfo; import android.os.Binder; import android.os.PerformanceHintManager; import android.os.PerformanceHintManager; import android.os.Trace; import android.os.Trace; import android.util.Log; import android.util.Log; Loading Loading @@ -168,9 +166,6 @@ public class SystemPerformanceHinter { private @Nullable PerformanceHintManager.Session mAdpfSession; private @Nullable PerformanceHintManager.Session mAdpfSession; private @Nullable DisplayRootProvider mDisplayRootProvider; private @Nullable DisplayRootProvider mDisplayRootProvider; /** Token for early wakeup requests to SurfaceFlinger. */ private EarlyWakeupInfo mEarlyWakeupInfo = new EarlyWakeupInfo(); /** /** * Constructor for the hinter. * Constructor for the hinter. * @hide * @hide Loading @@ -191,8 +186,6 @@ public class SystemPerformanceHinter { mTransaction = transactionSupplier != null mTransaction = transactionSupplier != null ? transactionSupplier.get() ? transactionSupplier.get() : new SurfaceControl.Transaction(); : new SurfaceControl.Transaction(); mEarlyWakeupInfo.token = new Binder(); mEarlyWakeupInfo.trace = SystemPerformanceHinter.class.getName(); } } /** /** Loading Loading @@ -272,7 +265,7 @@ public class SystemPerformanceHinter { // Global flags // Global flags if (nowEnabled(oldGlobalFlags, newGlobalFlags, HINT_SF_EARLY_WAKEUP)) { if (nowEnabled(oldGlobalFlags, newGlobalFlags, HINT_SF_EARLY_WAKEUP)) { mTransaction.setEarlyWakeupStart(mEarlyWakeupInfo); mTransaction.setEarlyWakeupStart(); transactionChanged = true; transactionChanged = true; if (isTraceEnabled) { if (isTraceEnabled) { asyncTraceBegin(HINT_SF_EARLY_WAKEUP, Display.INVALID_DISPLAY); asyncTraceBegin(HINT_SF_EARLY_WAKEUP, Display.INVALID_DISPLAY); Loading Loading @@ -322,7 +315,7 @@ public class SystemPerformanceHinter { // Global flags // Global flags if (nowDisabled(oldGlobalFlags, newGlobalFlags, HINT_SF_EARLY_WAKEUP)) { if (nowDisabled(oldGlobalFlags, newGlobalFlags, HINT_SF_EARLY_WAKEUP)) { mTransaction.setEarlyWakeupEnd(mEarlyWakeupInfo); mTransaction.setEarlyWakeupEnd(); transactionChanged = true; transactionChanged = true; if (isTraceEnabled) { if (isTraceEnabled) { asyncTraceEnd(HINT_SF_EARLY_WAKEUP); asyncTraceEnd(HINT_SF_EARLY_WAKEUP); Loading
core/jni/android_view_SurfaceControl.cpp +10 −38 Original line number Original line Diff line number Diff line Loading @@ -579,42 +579,14 @@ static void nativeSetAnimationTransaction(JNIEnv* env, jclass clazz, jlong trans transaction->setAnimationTransaction(); transaction->setAnimationTransaction(); } } static void nativeSetEarlyWakeupStart(JNIEnv* env, jclass clazz, jlong transactionObj, static void nativeSetEarlyWakeupStart(JNIEnv* env, jclass clazz, jlong transactionObj) { jobject infoObj) { Parcel* infoParcel = parcelForJavaObject(env, infoObj); if (infoParcel == NULL) { doThrowNPE(env); return; } gui::EarlyWakeupInfo earlyWakeupInfo; status_t err = earlyWakeupInfo.readFromParcel(infoParcel); if (err != NO_ERROR) { jniThrowException(env, "java/lang/IllegalArgumentException", "EarlyWakeupInfo parcel has wrong format"); return; } auto transaction = reinterpret_cast<SurfaceComposerClient::Transaction*>(transactionObj); auto transaction = reinterpret_cast<SurfaceComposerClient::Transaction*>(transactionObj); transaction->setEarlyWakeupStart(earlyWakeupInfo); transaction->setEarlyWakeupStart(); } static void nativeSetEarlyWakeupEnd(JNIEnv* env, jclass clazz, jlong transactionObj, jobject infoObj) { Parcel* infoParcel = parcelForJavaObject(env, infoObj); if (infoParcel == NULL) { doThrowNPE(env); return; } gui::EarlyWakeupInfo earlyWakeupInfo; status_t err = earlyWakeupInfo.readFromParcel(infoParcel); if (err != NO_ERROR) { jniThrowException(env, "java/lang/IllegalArgumentException", "EarlyWakeupInfo parcel has wrong format"); return; } } static void nativeSetEarlyWakeupEnd(JNIEnv* env, jclass clazz, jlong transactionObj) { auto transaction = reinterpret_cast<SurfaceComposerClient::Transaction*>(transactionObj); auto transaction = reinterpret_cast<SurfaceComposerClient::Transaction*>(transactionObj); transaction->setEarlyWakeupEnd(earlyWakeupInfo); transaction->setEarlyWakeupEnd(); } } static jlong nativeGetTransactionId(JNIEnv* env, jclass clazz, jlong transactionObj) { static jlong nativeGetTransactionId(JNIEnv* env, jclass clazz, jlong transactionObj) { Loading Loading @@ -1204,8 +1176,8 @@ static void nativeSetBoxShadowSettings(JNIEnv* env, jclass clazz, jlong transact transaction->setBoxShadowSettings(ctrl, settings); transaction->setBoxShadowSettings(ctrl, settings); } } static void nativeSetBorderSettings(JNIEnv* env, jclass clazz, static void nativeSetBorderSettings(JNIEnv* env, jclass clazz, jlong transactionObj, jlong transactionObj, jlong nativeObject, jobject settingsObj) { jlong nativeObject, jobject settingsObj) { Parcel* settingsParcel = parcelForJavaObject(env, settingsObj); Parcel* settingsParcel = parcelForJavaObject(env, settingsObj); if (settingsParcel == NULL) { if (settingsParcel == NULL) { doThrowNPE(env); doThrowNPE(env); Loading Loading @@ -2599,9 +2571,9 @@ static const JNINativeMethod sSurfaceControlMethods[] = { (void*)nativeMergeTransaction }, (void*)nativeMergeTransaction }, {"nativeSetAnimationTransaction", "(J)V", {"nativeSetAnimationTransaction", "(J)V", (void*)nativeSetAnimationTransaction }, (void*)nativeSetAnimationTransaction }, {"nativeSetEarlyWakeupStart", "(JLandroid/os/Parcel;)V", {"nativeSetEarlyWakeupStart", "(J)V", (void*)nativeSetEarlyWakeupStart }, (void*)nativeSetEarlyWakeupStart }, {"nativeSetEarlyWakeupEnd", "(JLandroid/os/Parcel;)V", {"nativeSetEarlyWakeupEnd", "(J)V", (void*)nativeSetEarlyWakeupEnd }, (void*)nativeSetEarlyWakeupEnd }, {"nativeGetTransactionId", "(J)J", {"nativeGetTransactionId", "(J)J", (void*)nativeGetTransactionId }, (void*)nativeGetTransactionId }, Loading
core/tests/coretests/src/android/window/SystemPerformanceHinterTests.java +13 −15 Original line number Original line Diff line number Diff line Loading @@ -37,8 +37,6 @@ import static org.mockito.Mockito.never; import static org.mockito.Mockito.reset; import static org.mockito.Mockito.reset; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify; import android.gui.EarlyWakeupInfo; import android.os.Binder; import android.os.PerformanceHintManager; import android.os.PerformanceHintManager; import android.platform.test.annotations.Presubmit; import android.platform.test.annotations.Presubmit; import android.view.SurfaceControl; import android.view.SurfaceControl; Loading Loading @@ -192,7 +190,7 @@ public class SystemPerformanceHinterTests { assertEquals(0, mRootProvider.getCount); assertEquals(0, mRootProvider.getCount); // Verify we call SF // Verify we call SF verify(mTransaction).setEarlyWakeupStart(any(EarlyWakeupInfo.class)); verify(mTransaction).setEarlyWakeupStart(); verify(mTransaction).applyAsyncUnsafe(); verify(mTransaction).applyAsyncUnsafe(); } } Loading @@ -204,7 +202,7 @@ public class SystemPerformanceHinterTests { session.close(); session.close(); // Verify we call SF // Verify we call SF verify(mTransaction).setEarlyWakeupEnd(any(EarlyWakeupInfo.class)); verify(mTransaction).setEarlyWakeupEnd(); verify(mTransaction).applyAsyncUnsafe(); verify(mTransaction).applyAsyncUnsafe(); } } Loading Loading @@ -251,7 +249,7 @@ public class SystemPerformanceHinterTests { eq(mDefaultDisplayRoot), eq(mDefaultDisplayRoot), eq(FRAME_RATE_CATEGORY_HIGH), eq(FRAME_RATE_CATEGORY_HIGH), eq(false)); eq(false)); verify(mTransaction).setEarlyWakeupStart(any(EarlyWakeupInfo.class)); verify(mTransaction).setEarlyWakeupStart(); verify(mTransaction).applyAsyncUnsafe(); verify(mTransaction).applyAsyncUnsafe(); verify(mAdpfSession).sendHint(eq(CPU_LOAD_UP)); verify(mAdpfSession).sendHint(eq(CPU_LOAD_UP)); } } Loading @@ -272,7 +270,7 @@ public class SystemPerformanceHinterTests { eq(mDefaultDisplayRoot), eq(mDefaultDisplayRoot), eq(FRAME_RATE_CATEGORY_DEFAULT), eq(FRAME_RATE_CATEGORY_DEFAULT), eq(false)); eq(false)); verify(mTransaction).setEarlyWakeupEnd(any(EarlyWakeupInfo.class)); verify(mTransaction).setEarlyWakeupEnd(); verify(mTransaction).applyAsyncUnsafe(); verify(mTransaction).applyAsyncUnsafe(); verify(mAdpfSession).sendHint(eq(CPU_LOAD_RESET)); verify(mAdpfSession).sendHint(eq(CPU_LOAD_RESET)); } } Loading @@ -293,7 +291,7 @@ public class SystemPerformanceHinterTests { eq(mDefaultDisplayRoot), eq(mDefaultDisplayRoot), eq(FRAME_RATE_CATEGORY_DEFAULT), eq(FRAME_RATE_CATEGORY_DEFAULT), eq(false)); eq(false)); verify(mTransaction).setEarlyWakeupEnd(any(EarlyWakeupInfo.class)); verify(mTransaction).setEarlyWakeupEnd(); verify(mTransaction).applyAsyncUnsafe(); verify(mTransaction).applyAsyncUnsafe(); verify(mAdpfSession).sendHint(eq(CPU_LOAD_RESET)); verify(mAdpfSession).sendHint(eq(CPU_LOAD_RESET)); } } Loading @@ -312,7 +310,7 @@ public class SystemPerformanceHinterTests { eq(mDefaultDisplayRoot), eq(mDefaultDisplayRoot), eq(FRAME_RATE_CATEGORY_HIGH), eq(FRAME_RATE_CATEGORY_HIGH), eq(false)); eq(false)); verify(mTransaction).setEarlyWakeupStart(any(EarlyWakeupInfo.class)); verify(mTransaction).setEarlyWakeupStart(); verify(mTransaction).applyAsyncUnsafe(); verify(mTransaction).applyAsyncUnsafe(); verify(mAdpfSession).sendHint(eq(CPU_LOAD_UP)); verify(mAdpfSession).sendHint(eq(CPU_LOAD_UP)); reset(mTransaction); reset(mTransaction); Loading @@ -323,7 +321,7 @@ public class SystemPerformanceHinterTests { // Verify we never call SF and perf manager since session1 is already running // Verify we never call SF and perf manager since session1 is already running verify(mTransaction, never()).setFrameRateSelectionStrategy(any(), anyInt()); verify(mTransaction, never()).setFrameRateSelectionStrategy(any(), anyInt()); verify(mTransaction, never()).setFrameRateCategory(any(), anyInt(), anyBoolean()); verify(mTransaction, never()).setFrameRateCategory(any(), anyInt(), anyBoolean()); verify(mTransaction, never()).setEarlyWakeupEnd(any(EarlyWakeupInfo.class)); verify(mTransaction, never()).setEarlyWakeupEnd(); verify(mTransaction, never()).applyAsyncUnsafe(); verify(mTransaction, never()).applyAsyncUnsafe(); verify(mAdpfSession, never()).sendHint(anyInt()); verify(mAdpfSession, never()).sendHint(anyInt()); Loading @@ -331,7 +329,7 @@ public class SystemPerformanceHinterTests { // Verify we have not cleaned up because session1 is still running // Verify we have not cleaned up because session1 is still running verify(mTransaction, never()).setFrameRateSelectionStrategy(any(), anyInt()); verify(mTransaction, never()).setFrameRateSelectionStrategy(any(), anyInt()); verify(mTransaction, never()).setFrameRateCategory(any(), anyInt(), anyBoolean()); verify(mTransaction, never()).setFrameRateCategory(any(), anyInt(), anyBoolean()); verify(mTransaction, never()).setEarlyWakeupEnd(any(EarlyWakeupInfo.class)); verify(mTransaction, never()).setEarlyWakeupEnd(); verify(mTransaction, never()).applyAsyncUnsafe(); verify(mTransaction, never()).applyAsyncUnsafe(); verify(mAdpfSession, never()).sendHint(anyInt()); verify(mAdpfSession, never()).sendHint(anyInt()); Loading @@ -344,7 +342,7 @@ public class SystemPerformanceHinterTests { eq(mDefaultDisplayRoot), eq(mDefaultDisplayRoot), eq(FRAME_RATE_CATEGORY_DEFAULT), eq(FRAME_RATE_CATEGORY_DEFAULT), eq(false)); eq(false)); verify(mTransaction).setEarlyWakeupEnd(any(EarlyWakeupInfo.class)); verify(mTransaction).setEarlyWakeupEnd(); verify(mTransaction).applyAsyncUnsafe(); verify(mTransaction).applyAsyncUnsafe(); verify(mAdpfSession).sendHint(eq(CPU_LOAD_RESET)); verify(mAdpfSession).sendHint(eq(CPU_LOAD_RESET)); } } Loading @@ -363,7 +361,7 @@ public class SystemPerformanceHinterTests { eq(mDefaultDisplayRoot), eq(mDefaultDisplayRoot), eq(FRAME_RATE_CATEGORY_HIGH), eq(FRAME_RATE_CATEGORY_HIGH), eq(false)); eq(false)); verify(mTransaction).setEarlyWakeupStart(any(EarlyWakeupInfo.class)); verify(mTransaction).setEarlyWakeupStart(); verify(mTransaction).applyAsyncUnsafe(); verify(mTransaction).applyAsyncUnsafe(); verify(mAdpfSession).sendHint(eq(CPU_LOAD_UP)); verify(mAdpfSession).sendHint(eq(CPU_LOAD_UP)); reset(mTransaction); reset(mTransaction); Loading @@ -379,7 +377,7 @@ public class SystemPerformanceHinterTests { eq(mSecondaryDisplayRoot), eq(mSecondaryDisplayRoot), eq(FRAME_RATE_CATEGORY_HIGH), eq(FRAME_RATE_CATEGORY_HIGH), eq(false)); eq(false)); verify(mTransaction, never()).setEarlyWakeupStart(any(EarlyWakeupInfo.class)); verify(mTransaction, never()).setEarlyWakeupStart(); verify(mTransaction).applyAsyncUnsafe(); verify(mTransaction).applyAsyncUnsafe(); verify(mAdpfSession, never()).sendHint(anyInt()); verify(mAdpfSession, never()).sendHint(anyInt()); reset(mTransaction); reset(mTransaction); Loading @@ -402,7 +400,7 @@ public class SystemPerformanceHinterTests { eq(mSecondaryDisplayRoot), eq(mSecondaryDisplayRoot), anyInt(), anyInt(), eq(false)); eq(false)); verify(mTransaction, never()).setEarlyWakeupEnd(any(EarlyWakeupInfo.class)); verify(mTransaction, never()).setEarlyWakeupEnd(); verify(mTransaction).applyAsyncUnsafe(); verify(mTransaction).applyAsyncUnsafe(); verify(mAdpfSession, never()).sendHint(anyInt()); verify(mAdpfSession, never()).sendHint(anyInt()); reset(mTransaction); reset(mTransaction); Loading @@ -420,7 +418,7 @@ public class SystemPerformanceHinterTests { eq(mSecondaryDisplayRoot), eq(mSecondaryDisplayRoot), eq(FRAME_RATE_CATEGORY_DEFAULT), eq(FRAME_RATE_CATEGORY_DEFAULT), eq(false)); eq(false)); verify(mTransaction).setEarlyWakeupEnd(any(EarlyWakeupInfo.class)); verify(mTransaction).setEarlyWakeupEnd(); verify(mTransaction).applyAsyncUnsafe(); verify(mTransaction).applyAsyncUnsafe(); verify(mAdpfSession).sendHint(eq(CPU_LOAD_RESET)); verify(mAdpfSession).sendHint(eq(CPU_LOAD_RESET)); } } Loading