Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 75ca86f0 authored by Jesse Hall's avatar Jesse Hall
Browse files

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
parent 4bfb7550
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -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