diff options
author | 2017-06-07 14:44:46 -0700 | |
---|---|---|
committer | 2017-06-16 00:48:25 +0000 | |
commit | 75ca86f072f82d38b21e0a13234ecbc2c24cb6ab (patch) | |
tree | bd890d4e9dfcf65a21736fa393658e441fdbc3be /libs/ui/Gralloc2.cpp | |
parent | 4bfb7550afa0d63806c5a3232ed3c1521183bffb (diff) |
libui: Load a.h.graphics.mapper passthrough service on library load
Zygote loads libui, this helps complete the chain from
zygote -> libui -> a.h.graphics.mapper -> gralloc
so that all of these libraries which are used by nearly every app are
loaded by zygote and shared.
Bug: 62353585
Test: boot to launcher, run calculator, confirm a.h.graphics.mapper
implementation library is in /proc/`pid zygote64`/maps
Change-Id: Ib505c926a410191e3e2ad809bfe98a73b21fac90
Diffstat (limited to 'libs/ui/Gralloc2.cpp')
-rw-r--r-- | libs/ui/Gralloc2.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/libs/ui/Gralloc2.cpp b/libs/ui/Gralloc2.cpp index 87dbaf47d3..e149803004 100644 --- a/libs/ui/Gralloc2.cpp +++ b/libs/ui/Gralloc2.cpp @@ -16,6 +16,7 @@ #define LOG_TAG "Gralloc2" +#include <hidl/ServiceManagement.h> #include <hwbinder/IPCThreadState.h> #include <ui/Gralloc2.h> @@ -250,4 +251,17 @@ Error Allocator::allocate(BufferDescriptor descriptor, uint32_t count, } // namespace Gralloc2 +namespace { +// Load the IMapper implementation library when this shared library is loaded, rather than when +// we (lazily) create the Gralloc2::Mapper instance. Since these libraries will all be needed by +// nearly all apps, this allows us to load them in Zygote rather than on each app launch. +class PreloadMapperImpl { +public: + PreloadMapperImpl() { + android::hardware::preloadPassthroughService<hardware::graphics::mapper::V2_0::IMapper>(); + } +}; +static PreloadMapperImpl preloadMapperImpl; +} // namespace + } // namespace android |