Disable EGL hibernation due to jank

Hibernating EGL takes a long time (>100 ms) and blocks all other
rendering. During window animations, the outgoing activity begins
hibernation before the animation stops, causing visible stutter.
Hibernation is still available by setting 'BOARD_ALLOW_EGL_HIBERNATION
:= true' in the devices BoardConfig.mk

Change-Id: Iab4e00723a1adcd97481e81b2efdc821b3e9712f
diff --git a/opengl/libs/Android.mk b/opengl/libs/Android.mk
index 66bc64d..c5c2618 100644
--- a/opengl/libs/Android.mk
+++ b/opengl/libs/Android.mk
@@ -36,6 +36,10 @@
 LOCAL_CFLAGS += -fvisibility=hidden
 LOCAL_CFLAGS += -DEGL_TRACE=1
 
+ifeq ($(BOARD_ALLOW_EGL_HIBERNATION),true)
+  LOCAL_CFLAGS += -DBOARD_ALLOW_EGL_HIBERNATION
+endif
+
 ifeq ($(TARGET_BOARD_PLATFORM),msm7k)
 LOCAL_CFLAGS += -DADRENO130=1
 endif
diff --git a/opengl/libs/EGL/egl_display.cpp b/opengl/libs/EGL/egl_display.cpp
index f2e3897..2cd1a93 100644
--- a/opengl/libs/EGL/egl_display.cpp
+++ b/opengl/libs/EGL/egl_display.cpp
@@ -420,7 +420,7 @@
     if (mWakeCount == 0 && CC_UNLIKELY(mAttemptHibernation)) {
         egl_connection_t* const cnx = &gEGLImpl;
         mAttemptHibernation = false;
-        if (mDpyValid &&
+        if (mAllowHibernation && mDpyValid &&
                 cnx->egl.eglHibernateProcessIMG &&
                 cnx->egl.eglAwakenProcessIMG) {
             ALOGV("Hibernating\n");
diff --git a/opengl/libs/EGL/egl_display.h b/opengl/libs/EGL/egl_display.h
index 412568b..7bb09a3 100644
--- a/opengl/libs/EGL/egl_display.h
+++ b/opengl/libs/EGL/egl_display.h
@@ -155,7 +155,12 @@
         };
 
         HibernationMachine(): mWakeCount(0), mHibernating(false),
-                mAttemptHibernation(false), mDpyValid(false)
+                mAttemptHibernation(false), mDpyValid(false),
+#if BOARD_ALLOW_EGL_HIBERNATION
+                mAllowHibernation(true)
+#else
+                mAllowHibernation(false)
+#endif
         {}
         ~HibernationMachine() {}
 
@@ -165,11 +170,12 @@
         void setDisplayValid(bool valid);
 
     private:
-        Mutex   mLock;
-        int32_t mWakeCount;
-        bool    mHibernating;
-        bool    mAttemptHibernation;
-        bool    mDpyValid;
+        Mutex      mLock;
+        int32_t    mWakeCount;
+        bool       mHibernating;
+        bool       mAttemptHibernation;
+        bool       mDpyValid;
+        const bool mAllowHibernation;
     };
     HibernationMachine mHibernation;
 };