diff --git a/graphics/mapper/2.0/default/passthrough.cpp b/graphics/mapper/2.0/default/passthrough.cpp index e18b88fb84..93d6d99063 100644 --- a/graphics/mapper/2.0/default/passthrough.cpp +++ b/graphics/mapper/2.0/default/passthrough.cpp @@ -19,6 +19,14 @@ using android::hardware::graphics::mapper::V2_0::IMapper; using android::hardware::graphics::mapper::V2_0::passthrough::GrallocLoader; +// Preload the gralloc module such that GraphicBufferMapper::preloadHal is +// meaningful +class GrallocPreloader { +public: + GrallocPreloader() { GrallocLoader::loadModule(); } +}; +static GrallocPreloader sGrallocPreloader; + extern "C" IMapper* HIDL_FETCH_IMapper(const char* /*name*/) { return GrallocLoader::load(); } diff --git a/graphics/mapper/2.1/default/passthrough.cpp b/graphics/mapper/2.1/default/passthrough.cpp index c7f0cf5632..c99c98460e 100644 --- a/graphics/mapper/2.1/default/passthrough.cpp +++ b/graphics/mapper/2.1/default/passthrough.cpp @@ -19,6 +19,14 @@ using android::hardware::graphics::mapper::V2_1::IMapper; using android::hardware::graphics::mapper::V2_1::passthrough::GrallocLoader; +// Preload the gralloc module such that GraphicBufferMapper::preloadHal is +// meaningful +class GrallocPreloader { +public: + GrallocPreloader() { GrallocLoader::loadModule(); } +}; +static GrallocPreloader sGrallocPreloader; + extern "C" IMapper* HIDL_FETCH_IMapper(const char* /*name*/) { return GrallocLoader::load(); }