diff options
| author | 2020-06-30 13:28:58 -0700 | |
|---|---|---|
| committer | 2020-10-16 13:53:05 +0000 | |
| commit | 44ca28c5c958e76641cf413f060625412c085b2c (patch) | |
| tree | 6e1e5886694d03061e73d4b085f80bf6d4c341f0 | |
| parent | 6b634145572ba2d041362236a0254e04fa3a2ae9 (diff) | |
Remove some dead code
Simplify state by deleting unused & always true stuff
Test: builds
Change-Id: Idf679aff5e809e567dac21a127cb9d6ace894f0e
| -rw-r--r-- | core/java/android/app/ActivityThread.java | 11 | ||||
| -rw-r--r-- | core/java/android/view/ThreadedRenderer.java | 54 | ||||
| -rw-r--r-- | core/java/android/view/View.java | 3 | ||||
| -rw-r--r-- | core/java/android/view/ViewRootImpl.java | 7 | ||||
| -rw-r--r-- | core/java/android/view/WindowManagerGlobal.java | 31 | 
5 files changed, 33 insertions, 73 deletions
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java index 28bd5406df87..a6fa9ecf113b 100644 --- a/core/java/android/app/ActivityThread.java +++ b/core/java/android/app/ActivityThread.java @@ -3631,7 +3631,7 @@ public final class ActivityThread extends ClientTransactionHandler {              TAG, "Handling launch of " + r);          // Initialize before creating the activity -        if (!ThreadedRenderer.sRendererDisabled +        if (ThreadedRenderer.sRendererEnabled                  && (r.activityInfo.flags & ActivityInfo.FLAG_HARDWARE_ACCELERATED) != 0) {              HardwareRenderer.preload();          } @@ -7417,14 +7417,7 @@ public final class ActivityThread extends ClientTransactionHandler {      @UnsupportedAppUsage      public static ActivityThread systemMain() { -        // The system process on low-memory devices do not get to use hardware -        // accelerated drawing, since this can add too much overhead to the -        // process. -        if (!ActivityManager.isHighEndGfx()) { -            ThreadedRenderer.disable(true); -        } else { -            ThreadedRenderer.enableForegroundTrimming(); -        } +        ThreadedRenderer.initForSystemProcess();          ActivityThread thread = new ActivityThread();          thread.attach(true, 0);          return thread; diff --git a/core/java/android/view/ThreadedRenderer.java b/core/java/android/view/ThreadedRenderer.java index 14a324dc3abe..57ca71ae4b02 100644 --- a/core/java/android/view/ThreadedRenderer.java +++ b/core/java/android/view/ThreadedRenderer.java @@ -18,6 +18,7 @@ package android.view;  import android.annotation.NonNull;  import android.annotation.Nullable; +import android.app.ActivityManager;  import android.content.Context;  import android.content.res.TypedArray;  import android.graphics.HardwareRenderer; @@ -26,7 +27,6 @@ import android.graphics.Point;  import android.graphics.RecordingCanvas;  import android.graphics.Rect;  import android.graphics.RenderNode; -import android.os.SystemProperties;  import android.os.Trace;  import android.util.Log;  import android.view.Surface.OutOfResourcesException; @@ -186,37 +186,12 @@ public final class ThreadedRenderer extends HardwareRenderer {      public static int EGL_CONTEXT_PRIORITY_MEDIUM_IMG = 0x3102;      public static int EGL_CONTEXT_PRIORITY_LOW_IMG = 0x3103; -    static { -        // Try to check OpenGL support early if possible. -        isAvailable(); -    } - -    /** -     * A process can set this flag to false to prevent the use of threaded -     * rendering. -     * -     * @hide -     */ -    public static boolean sRendererDisabled = false; -      /**       * Further threaded renderer disabling for the system process.       *       * @hide       */ -    public static boolean sSystemRendererDisabled = false; - -    /** -     * Invoke this method to disable threaded rendering in the current process. -     * -     * @hide -     */ -    public static void disable(boolean system) { -        sRendererDisabled = true; -        if (system) { -            sSystemRendererDisabled = true; -        } -    } +    public static boolean sRendererEnabled = true;      public static boolean sTrimForeground = false; @@ -230,16 +205,19 @@ public final class ThreadedRenderer extends HardwareRenderer {          sTrimForeground = true;      } -      /** -     * Indicates whether threaded rendering is available under any form for -     * the view hierarchy. -     * -     * @return True if the view hierarchy can potentially be defer rendered, -     *         false otherwise +     * Initialize HWUI for being in a system process like system_server +     * Should not be called in non-system processes       */ -    public static boolean isAvailable() { -        return true; +    public static void initForSystemProcess() { +        // The system process on low-memory devices do not get to use hardware +        // accelerated drawing, since this can add too much overhead to the +        // process. +        if (!ActivityManager.isHighEndGfx()) { +            sRendererEnabled = false; +        } else { +            enableForegroundTrimming(); +        }      }      /** @@ -250,11 +228,7 @@ public final class ThreadedRenderer extends HardwareRenderer {       * @return A threaded renderer backed by OpenGL.       */      public static ThreadedRenderer create(Context context, boolean translucent, String name) { -        ThreadedRenderer renderer = null; -        if (isAvailable()) { -            renderer = new ThreadedRenderer(context, translucent, name); -        } -        return renderer; +        return new ThreadedRenderer(context, translucent, name);      }      private static final String[] VISUALIZERS = { diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index 4f05a599c171..cf5ca56eb188 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -23573,8 +23573,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,          if ((privateFlags & PFLAG_SELECTED) != 0) viewStateIndex |= StateSet.VIEW_STATE_SELECTED;          if (hasWindowFocus()) viewStateIndex |= StateSet.VIEW_STATE_WINDOW_FOCUSED;          if ((privateFlags & PFLAG_ACTIVATED) != 0) viewStateIndex |= StateSet.VIEW_STATE_ACTIVATED; -        if (mAttachInfo != null && mAttachInfo.mHardwareAccelerationRequested && -                ThreadedRenderer.isAvailable()) { +        if (mAttachInfo != null && mAttachInfo.mHardwareAccelerationRequested) {              // This is set if HW acceleration is requested, even if the current              // process doesn't allow it.  This is just to allow app preview              // windows to better match their app. diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index 52357402877a..5c5f4417380b 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -1291,10 +1291,6 @@ public final class ViewRootImpl implements ViewParent,                  (attrs.flags & WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED) != 0;          if (hardwareAccelerated) { -            if (!ThreadedRenderer.isAvailable()) { -                return; -            } -              // Persistent processes (including the system) should not do              // accelerated rendering on low-end devices.  In that case,              // sRendererDisabled will be set.  In addition, the system process @@ -1314,8 +1310,7 @@ public final class ViewRootImpl implements ViewParent,                  // shows for launching applications, so they will look more like                  // the app being launched.                  mAttachInfo.mHardwareAccelerationRequested = true; -            } else if (!ThreadedRenderer.sRendererDisabled -                    || (ThreadedRenderer.sSystemRendererDisabled && forceHwAccelerated)) { +            } else if (ThreadedRenderer.sRendererEnabled || forceHwAccelerated) {                  if (mAttachInfo.mThreadedRenderer != null) {                      mAttachInfo.mThreadedRenderer.destroy();                  } diff --git a/core/java/android/view/WindowManagerGlobal.java b/core/java/android/view/WindowManagerGlobal.java index 8490f2abeffa..f01cbcc1430e 100644 --- a/core/java/android/view/WindowManagerGlobal.java +++ b/core/java/android/view/WindowManagerGlobal.java @@ -527,7 +527,7 @@ public final class WindowManagerGlobal {              }              allViewsRemoved = mRoots.isEmpty();          } -        if (ThreadedRenderer.sTrimForeground && ThreadedRenderer.isAvailable()) { +        if (ThreadedRenderer.sTrimForeground) {              doTrimForeground();          } @@ -561,29 +561,28 @@ public final class WindowManagerGlobal {      @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)      public void trimMemory(int level) { -        if (ThreadedRenderer.isAvailable()) { -            if (shouldDestroyEglContext(level)) { -                // Destroy all hardware surfaces and resources associated to -                // known windows -                synchronized (mLock) { -                    for (int i = mRoots.size() - 1; i >= 0; --i) { -                        mRoots.get(i).destroyHardwareResources(); -                    } + +        if (shouldDestroyEglContext(level)) { +            // Destroy all hardware surfaces and resources associated to +            // known windows +            synchronized (mLock) { +                for (int i = mRoots.size() - 1; i >= 0; --i) { +                    mRoots.get(i).destroyHardwareResources();                  } -                // Force a full memory flush -                level = ComponentCallbacks2.TRIM_MEMORY_COMPLETE;              } +            // Force a full memory flush +            level = ComponentCallbacks2.TRIM_MEMORY_COMPLETE; +        } -            ThreadedRenderer.trimMemory(level); +        ThreadedRenderer.trimMemory(level); -            if (ThreadedRenderer.sTrimForeground) { -                doTrimForeground(); -            } +        if (ThreadedRenderer.sTrimForeground) { +            doTrimForeground();          }      }      public static void trimForeground() { -        if (ThreadedRenderer.sTrimForeground && ThreadedRenderer.isAvailable()) { +        if (ThreadedRenderer.sTrimForeground) {              WindowManagerGlobal wm = WindowManagerGlobal.getInstance();              wm.doTrimForeground();          }  |