New compile-time flags to make debugging easier for us poor souls
Bug #7195815

Change-Id: I23e7ac991891b9586cb8ed20b1305c8b1b3e2b43
diff --git a/opengl/libs/GLES2/gl2.cpp b/opengl/libs/GLES2/gl2.cpp
index b00af1b..9e52298 100644
--- a/opengl/libs/GLES2/gl2.cpp
+++ b/opengl/libs/GLES2/gl2.cpp
@@ -29,6 +29,8 @@
 #define ATRACE_TAG ATRACE_TAG_GRAPHICS
 #include <utils/Trace.h>
 
+#include <utils/CallStack.h>
+
 #include "hooks.h"
 #include "egl_impl.h"
 
@@ -43,9 +45,10 @@
 #undef CALL_GL_API_RETURN
 
 #define DEBUG_CALL_GL_API 0
+#define DEBUG_PRINT_CALL_STACK_ON_ERROR 0
 #define SYSTRACE_CALL_GL_API 0
 
-#if USE_FAST_TLS_KEY
+#if USE_FAST_TLS_KEY___
 
     #ifdef HAVE_ARM_TLS_REGISTER
         #define GET_TLS(reg) \
@@ -86,8 +89,15 @@
         gl_hooks_t::gl_t const * const _c = &getGlThreadSpecific()->gl;  \
         _c->_api(__VA_ARGS__); \
         GLenum status = GL_NO_ERROR; \
+        bool error = false; \
         while ((status = glGetError()) != GL_NO_ERROR) { \
             ALOGD("[" #_api "] 0x%x", status); \
+            error = true; \
+        } \
+        if (DEBUG_PRINT_CALL_STACK_ON_ERROR && error) { \
+            CallStack s; \
+            s.update(); \
+            s.dump("glGetError:" #_api); \
         }
 
 #elif SYSTRACE_CALL_GL_API