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

Commit 7da46d06 authored by Iliyan Malchev's avatar Iliyan Malchev Committed by Android (Google) Code Review
Browse files

Merge "surfaceflinger: start grahpics allocator when requested" into oc-dev

parents d111a91c b278404c
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -133,10 +133,15 @@ LOCAL_SRC_FILES := \
    main_surfaceflinger.cpp

LOCAL_SHARED_LIBRARIES := \
    android.hardware.configstore@1.0 \
    android.hardware.configstore-utils \
    android.hardware.graphics.allocator@2.0 \
    libsurfaceflinger \
    libcutils \
    liblog \
    libbinder \
    libhidlbase \
    libhidltransport \
    libutils \
    libui \
    libgui \
+27 −0
Original line number Diff line number Diff line
@@ -18,17 +18,44 @@

#include <sched.h>

#include <android/hardware/configstore/1.0/ISurfaceFlingerConfigs.h>
#include <android/hardware/graphics/allocator/2.0/IAllocator.h>
#include <cutils/sched_policy.h>
#include <binder/IServiceManager.h>
#include <binder/IPCThreadState.h>
#include <binder/ProcessState.h>
#include <binder/IServiceManager.h>
#include <hidl/LegacySupport.h>
#include <configstore/Utils.h>
#include "GpuService.h"
#include "SurfaceFlinger.h"

using namespace android;

using android::hardware::graphics::allocator::V2_0::IAllocator;
using android::hardware::configstore::V1_0::ISurfaceFlingerConfigs;
using android::hardware::configstore::getBool;
using android::hardware::configstore::getBool;

static status_t startGraphicsAllocatorService() {
    hardware::configureRpcThreadpool( 1 /* maxThreads */,
            false /* callerWillJoin */);
    status_t result =
        hardware::registerPassthroughServiceImplementation<IAllocator>();
    if (result != OK) {
        ALOGE("could not start graphics allocator service");
        return result;
    }

    return OK;
}

int main(int, char**) {
    if (getBool<ISurfaceFlingerConfigs,
            &ISurfaceFlingerConfigs::startGraphicsAllocatorService>(false)) {
        startGraphicsAllocatorService();
    }

    signal(SIGPIPE, SIG_IGN);
    // When SF is launched in its own process, limit the number of
    // binder threads to 4.