diff options
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 |
commit | 898123b6a37b778acf59edbfdab9af28ae3f1a22 (patch) | |
tree | d0c691a2c51a1a0c0dc382b89c8b086091fb4c82 /libs/hwui/renderthread/RenderProxy.cpp | |
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 'libs/hwui/renderthread/RenderProxy.cpp')
-rw-r--r-- | libs/hwui/renderthread/RenderProxy.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/libs/hwui/renderthread/RenderProxy.cpp b/libs/hwui/renderthread/RenderProxy.cpp index 720c60362a55..34f76d9b3579 100644 --- a/libs/hwui/renderthread/RenderProxy.cpp +++ b/libs/hwui/renderthread/RenderProxy.cpp @@ -381,6 +381,14 @@ void RenderProxy::releaseVDAtlasEntries() { }); } +void RenderProxy::preload() { + // Create RenderThread object and start the thread. Then preload Vulkan/EGL driver. + auto& thread = RenderThread::getInstance(); + thread.queue().post([&thread]() { + thread.preload(); + }); +} + } /* namespace renderthread */ } /* namespace uirenderer */ } /* namespace android */ |