diff options
author | 2019-02-14 14:57:44 -0500 | |
---|---|---|
committer | 2019-02-20 02:10:52 +0000 | |
commit | 898123b6a37b778acf59edbfdab9af28ae3f1a22 (patch) | |
tree | d0c691a2c51a1a0c0dc382b89c8b086091fb4c82 /graphics/java | |
parent | c7e26f7fbb87a62fb6a92973543a04e7d901dc28 (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.java | 12 |
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); |