summaryrefslogtreecommitdiff
path: root/graphics/java
diff options
context:
space:
mode:
author Stan Iliev <stani@google.com> 2019-02-14 14:57:44 -0500
committer Stan Iliev <stani@google.com> 2019-02-20 02:10:52 +0000
commit898123b6a37b778acf59edbfdab9af28ae3f1a22 (patch)
treed0c691a2c51a1a0c0dc382b89c8b086091fb4c82 /graphics/java
parentc7e26f7fbb87a62fb6a92973543a04e7d901dc28 (diff)
Start RenderThread earlier to preload Vulkan/EGL drivers
This CL should fix application startup regression for Vulkan detected by "Hermetic Startup: EmptyActivity" test. EGL drivers are loaded in a temp thread to leave more time in RenderThread for other work. Loading EGL drivers on the RenderThread may cause a perf regression. Test: Ran cold-dropcache-test test. Bug: 122659224 Bug: 123361175 Change-Id: I8ca818e98fac196a41d079be15594caca5cb1bab
Diffstat (limited to 'graphics/java')
-rw-r--r--graphics/java/android/graphics/HardwareRenderer.java12
1 files changed, 12 insertions, 0 deletions
diff --git a/graphics/java/android/graphics/HardwareRenderer.java b/graphics/java/android/graphics/HardwareRenderer.java
index 99d8c1b42a4a..b020556cd15f 100644
--- a/graphics/java/android/graphics/HardwareRenderer.java
+++ b/graphics/java/android/graphics/HardwareRenderer.java
@@ -1027,6 +1027,18 @@ public class HardwareRenderer {
*/
public static native void disableVsync();
+ /**
+ * Start render thread and initialize EGL or Vulkan.
+ *
+ * Initializing EGL involves loading and initializing the graphics driver. Some drivers take
+ * several 10s of milliseconds to do this, so doing it on-demand when an app tries to render
+ * its first frame adds directly to user-visible app launch latency.
+ *
+ * Should only be called after GraphicsEnvironment.chooseDriver().
+ * @hide
+ */
+ public static native void preload();
+
/** @hide */
protected static native void setupShadersDiskCache(String cacheFile, String skiaCacheFile);