OSDN Git Service

Add rate-limited logging for unimplemented es functions.
authorMichael Lentine <mlentine@google.com>
Thu, 11 Sep 2014 19:24:13 +0000 (12:24 -0700)
committerMichael Lentine <mlentine@google.com>
Tue, 23 Sep 2014 15:30:12 +0000 (08:30 -0700)
Bug: 17322013

Change-Id: I7aa5ab2f76cf344cfb75802edbfd44e8e7526ff1

opengl/libs/EGL/egl.cpp

index 67fbae5..7c70fa0 100644 (file)
@@ -330,12 +330,26 @@ EGLBoolean egl_init_drivers() {
     return res;
 }
 
+static pthread_mutex_t sLogPrintMutex = PTHREAD_MUTEX_INITIALIZER;
+static nsecs_t sLogPrintTime = 0;
+#define NSECS_DURATION 1000000000
+
 void gl_unimplemented() {
-    ALOGE("called unimplemented OpenGL ES API");
-    char value[PROPERTY_VALUE_MAX];
-    property_get("debug.egl.callstack", value, "0");
-    if (atoi(value)) {
-        CallStack stack(LOG_TAG);
+    bool printLog = false;
+    nsecs_t now = systemTime();
+    pthread_mutex_lock(&sLogPrintMutex);
+    if ((now - sLogPrintTime) > NSECS_DURATION) {
+        sLogPrintTime = now;
+        printLog = true;
+    }
+    pthread_mutex_unlock(&sLogPrintMutex);
+    if (printLog) {
+        ALOGE("called unimplemented OpenGL ES API");
+        char value[PROPERTY_VALUE_MAX];
+        property_get("debug.egl.callstack", value, "0");
+        if (atoi(value)) {
+            CallStack stack(LOG_TAG);
+        }
     }
 }