diff options
| -rw-r--r-- | graphics/composer/2.1/default/android.hardware.graphics.composer@2.1-service.rc | 1 | ||||
| -rw-r--r-- | graphics/composer/2.1/default/service.cpp | 10 |
2 files changed, 11 insertions, 0 deletions
diff --git a/graphics/composer/2.1/default/android.hardware.graphics.composer@2.1-service.rc b/graphics/composer/2.1/default/android.hardware.graphics.composer@2.1-service.rc index fc21d59e1..9548d4174 100644 --- a/graphics/composer/2.1/default/android.hardware.graphics.composer@2.1-service.rc +++ b/graphics/composer/2.1/default/android.hardware.graphics.composer@2.1-service.rc @@ -2,4 +2,5 @@ service hwcomposer-2-1 /system/bin/hw/android.hardware.graphics.composer@2.1-ser class hal user system group graphics drmrpc readproc + capabilities SYS_NICE onrestart restart surfaceflinger diff --git a/graphics/composer/2.1/default/service.cpp b/graphics/composer/2.1/default/service.cpp index a31decd3a..656673e67 100644 --- a/graphics/composer/2.1/default/service.cpp +++ b/graphics/composer/2.1/default/service.cpp @@ -16,6 +16,8 @@ #define LOG_TAG "android.hardware.graphics.composer@2.1-service" +#include <sched.h> + #include <android/hardware/graphics/composer/2.1/IComposer.h> #include <binder/ProcessState.h> @@ -29,5 +31,13 @@ int main() { android::ProcessState::self()->setThreadPoolMaxThreadCount(4); android::ProcessState::self()->startThreadPool(); + // same as SF main thread + struct sched_param param = {0}; + param.sched_priority = 2; + if (sched_setscheduler(0, SCHED_FIFO | SCHED_RESET_ON_FORK, + ¶m) != 0) { + ALOGE("Couldn't set SCHED_FIFO: %d", errno); + } + return defaultPassthroughServiceImplementation<IComposer>("hwcomposer"); } |
