Mesa (master): Revert "glapi: Implement optional dispatch logging"

Kristian Høgsberg krh at kemper.freedesktop.org
Thu Sep 9 23:04:03 UTC 2010


Module: Mesa
Branch: master
Commit: 042a333028eba49f21b45cafaf9dd15d34c68033
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=042a333028eba49f21b45cafaf9dd15d34c68033

Author: Kristian Høgsberg <krh at bitplanet.net>
Date:   Thu Sep  9 18:59:49 2010 -0400

Revert "glapi: Implement optional dispatch logging"

This reverts commit b9abc6139a310677a37754ea7172d976dbf56979 and the
follow on fixes (7aae704 and 6fe1b47).  It's changing the glapi/driver
ABI and causes a number of problems for debug/non-debug builds.

---

 src/mapi/glapi/glapi.h                 |    8 +---
 src/mapi/glapi/glapi_dispatch.c        |   80 ++++++-------------------------
 src/mesa/drivers/dri/common/dri_test.c |   12 -----
 src/mesa/main/context.c                |   35 +-------------
 src/mesa/main/context.h                |    3 -
 src/mesa/main/debug.c                  |    6 +--
 src/mesa/main/dlist.c                  |    8 ++--
 src/mesa/main/mtypes.h                 |    3 +-
 8 files changed, 25 insertions(+), 130 deletions(-)

diff --git a/src/mapi/glapi/glapi.h b/src/mapi/glapi/glapi.h
index 2fa5802..a0bb078 100644
--- a/src/mapi/glapi/glapi.h
+++ b/src/mapi/glapi/glapi.h
@@ -94,7 +94,7 @@ _GLAPI_EXPORT extern __thread void * _glapi_tls_Context
 _GLAPI_EXPORT extern const struct _glapi_table *_glapi_Dispatch;
 _GLAPI_EXPORT extern const void *_glapi_Context;
 
-# define GET_DISPATCH(t) _glapi_tls_Dispatch
+# define GET_DISPATCH() _glapi_tls_Dispatch
 # define GET_CURRENT_CONTEXT(C)  GLcontext *C = (GLcontext *) _glapi_tls_Context
 
 #else
@@ -167,12 +167,6 @@ _glapi_get_proc_name(unsigned int offset);
 _GLAPI_EXPORT unsigned long
 _glthread_GetID(void);
 
-_GLAPI_EXPORT int
-_glapi_logging_available(void);
-
-_GLAPI_EXPORT void
-_glapi_enable_logging(void (*func)(void *data, const char *fmt, ...),
-		      void *data);
 
 /*
  * These stubs are kept so that the old DRI drivers still load.
diff --git a/src/mapi/glapi/glapi_dispatch.c b/src/mapi/glapi/glapi_dispatch.c
index c060c55..7421a36 100644
--- a/src/mapi/glapi/glapi_dispatch.c
+++ b/src/mapi/glapi/glapi_dispatch.c
@@ -41,6 +41,7 @@
 #include "glapi/glapitable.h"
 #include "glapi/glapidispatch.h"
 
+
 #if !(defined(USE_X86_ASM) || defined(USE_X86_64_ASM) || defined(USE_SPARC_ASM))
 
 #if defined(WIN32)
@@ -57,12 +58,27 @@
 #define NAME(func)  gl##func
 #endif
 
+#if 0  /* Use this to log GL calls to stdout (for DEBUG only!) */
+
+#define F stdout
+#define DISPATCH(FUNC, ARGS, MESSAGE)		\
+   fprintf MESSAGE;				\
+   CALL_ ## FUNC(GET_DISPATCH(), ARGS);
+
+#define RETURN_DISPATCH(FUNC, ARGS, MESSAGE) 	\
+   fprintf MESSAGE;				\
+   return CALL_ ## FUNC(GET_DISPATCH(), ARGS);
+
+#else
+
 #define DISPATCH(FUNC, ARGS, MESSAGE)		\
    CALL_ ## FUNC(GET_DISPATCH(), ARGS);
 
 #define RETURN_DISPATCH(FUNC, ARGS, MESSAGE) 	\
    return CALL_ ## FUNC(GET_DISPATCH(), ARGS);
 
+#endif /* logging */
+
 
 #ifndef GLAPIENTRY
 #define GLAPIENTRY
@@ -75,67 +91,3 @@
 #include "glapi/glapitemp.h"
 
 #endif /* USE_X86_ASM */
-
-
-#ifdef DEBUG
-
-static void *logger_data;
-static void (*logger_func)(void *data, const char *fmt, ...);
-static struct _glapi_table *real_dispatch; /* FIXME: This need to be TLS etc */
-
-#define KEYWORD1 static
-#define KEYWORD1_ALT static
-#define KEYWORD2
-#define NAME(func)  log_##func
-#define F logger_data
-
-static void
-log_Unused(void)
-{
-}
-
-#define DISPATCH(FUNC, ARGS, MESSAGE)		\
-   logger_func MESSAGE;				\
-   CALL_ ## FUNC(real_dispatch, ARGS);
-
-#define RETURN_DISPATCH(FUNC, ARGS, MESSAGE) 	\
-   logger_func MESSAGE;			\
-   return CALL_ ## FUNC(real_dispatch, ARGS);
-
-#define DISPATCH_TABLE_NAME __glapi_logging_table
-
-#define TABLE_ENTRY(func) (_glapi_proc) log_##func
-
-#include "glapi/glapitemp.h"
-
-int
-_glapi_logging_available(void)
-{
-   return 1;
-}
-
-void
-_glapi_enable_logging(void (*func)(void *data, const char *fmt, ...),
-		      void *data)
-{
-   real_dispatch = GET_DISPATCH();
-   logger_func = func;
-   logger_data = data;
-   _glapi_set_dispatch(&__glapi_logging_table);
-}
-
-#else
-
-int
-_glapi_logging_available(void)
-{
-   return 0;
-}
-
-void
-_glapi_enable_logging(void (*func)(void *data, const char *fmt, ...),
-		      void *data)
-{
-}
-
-#endif
diff --git a/src/mesa/drivers/dri/common/dri_test.c b/src/mesa/drivers/dri/common/dri_test.c
index 8a47316..793f0c3 100644
--- a/src/mesa/drivers/dri/common/dri_test.c
+++ b/src/mesa/drivers/dri/common/dri_test.c
@@ -82,18 +82,6 @@ _glthread_GetID(void)
    return 0;
 }
 
-PUBLIC int
-_glapi_logging_available(void)
-{
-   return 0;
-}
-
-PUBLIC void
-_glapi_enable_logging(void (*func)(void *data, const char *fmt, ...),
-		      void *data)
-{
-}
-
 int main(int argc, char** argv)
 {
    void* p = __driDriverExtensions;
diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c
index decc1dd..979bc40 100644
--- a/src/mesa/main/context.c
+++ b/src/mesa/main/context.c
@@ -1370,38 +1370,7 @@ _mesa_check_init_viewport(GLcontext *ctx, GLuint width, GLuint height)
    }
 }
 
-#ifdef DEBUG
-
-static void
-dispatch_logger(void *data, const char *fmt, ...)
-{
-   va_list ap;
-
-   va_start(ap, fmt);
-   vfprintf(stderr, fmt, ap);
-   va_end(ap);
-}
-
-void
-_mesa_set_dispatch(void *table)
-{
-   if (table && (MESA_VERBOSE & VERBOSE_DISPATCH)) {
-      _glapi_set_dispatch(table);
-      _glapi_enable_logging(dispatch_logger, stderr);
-   } else {
-      _glapi_set_dispatch(table);
-   }
-}
 
-#else
-
-void
-_mesa_set_dispatch(void *table)
-{
-   _glapi_set_dispatch(table);
-}
-
-#endif
 /**
  * Bind the given context to the given drawBuffer and readBuffer and
  * make it the current context for the calling thread.
@@ -1445,10 +1414,10 @@ _mesa_make_current( GLcontext *newCtx, GLframebuffer *drawBuffer,
    ASSERT(_mesa_get_current_context() == newCtx);
 
    if (!newCtx) {
-      _mesa_set_dispatch(NULL);  /* none current */
+      _glapi_set_dispatch(NULL);  /* none current */
    }
    else {
-      _mesa_set_dispatch(newCtx->CurrentDispatch);
+      _glapi_set_dispatch(newCtx->CurrentDispatch);
 
       if (drawBuffer && readBuffer) {
 	 /* TODO: check if newCtx and buffer's visual match??? */
diff --git a/src/mesa/main/context.h b/src/mesa/main/context.h
index 142243f..c61da62 100644
--- a/src/mesa/main/context.h
+++ b/src/mesa/main/context.h
@@ -145,9 +145,6 @@ extern GLboolean
 _mesa_make_current( GLcontext *ctx, GLframebuffer *drawBuffer,
                     GLframebuffer *readBuffer );
 
-extern void
-_mesa_set_dispatch(void *table);
-
 extern GLboolean
 _mesa_share_state(GLcontext *ctx, GLcontext *ctxToShare);
 
diff --git a/src/mesa/main/debug.c b/src/mesa/main/debug.c
index e5c3133..526145a 100644
--- a/src/mesa/main/debug.c
+++ b/src/mesa/main/debug.c
@@ -201,8 +201,7 @@ static void add_debug_flags( const char *debug )
       { "lighting",  VERBOSE_LIGHTING },
       { "disassem",  VERBOSE_DISASSEM },
       { "draw",      VERBOSE_DRAW },
-      { "swap",      VERBOSE_SWAPBUFFERS },
-      { "dispatch",  VERBOSE_DISPATCH }
+      { "swap",      VERBOSE_SWAPBUFFERS }
    };
    GLuint i;
 
@@ -212,9 +211,6 @@ static void add_debug_flags( const char *debug )
          MESA_VERBOSE |= debug_opt[i].flag;
    }
 
-   if ((MESA_VERBOSE & VERBOSE_DISPATCH) && !_glapi_logging_available())
-      _mesa_debug(NULL, "dispatch logging not available in this buidl\n");
-
    /* Debug flag:
     */
    if (strstr(debug, "flush"))
diff --git a/src/mesa/main/dlist.c b/src/mesa/main/dlist.c
index 0c4e3d5..6928d21 100644
--- a/src/mesa/main/dlist.c
+++ b/src/mesa/main/dlist.c
@@ -8062,7 +8062,7 @@ _mesa_NewList(GLuint name, GLenum mode)
    ctx->Driver.NewList(ctx, name, mode);
 
    ctx->CurrentDispatch = ctx->Save;
-   _mesa_set_dispatch(ctx->CurrentDispatch);
+   _glapi_set_dispatch(ctx->CurrentDispatch);
 }
 
 
@@ -8109,7 +8109,7 @@ _mesa_EndList(void)
    ctx->CompileFlag = GL_FALSE;
 
    ctx->CurrentDispatch = ctx->Exec;
-   _mesa_set_dispatch(ctx->CurrentDispatch);
+   _glapi_set_dispatch(ctx->CurrentDispatch);
 }
 
 
@@ -8143,7 +8143,7 @@ _mesa_CallList(GLuint list)
    /* also restore API function pointers to point to "save" versions */
    if (save_compile_flag) {
       ctx->CurrentDispatch = ctx->Save;
-      _mesa_set_dispatch(ctx->CurrentDispatch);
+      _glapi_set_dispatch(ctx->CurrentDispatch);
    }
 }
 
@@ -8195,7 +8195,7 @@ _mesa_CallLists(GLsizei n, GLenum type, const GLvoid * lists)
    /* also restore API function pointers to point to "save" versions */
    if (save_compile_flag) {
       ctx->CurrentDispatch = ctx->Save;
-      _mesa_set_dispatch(ctx->CurrentDispatch);
+      _glapi_set_dispatch(ctx->CurrentDispatch);
    }
 }
 
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index bcd324b..a1a0a23 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -3346,8 +3346,7 @@ enum _verbose
    VERBOSE_VERTS		= 0x0800,
    VERBOSE_DISASSEM		= 0x1000,
    VERBOSE_DRAW                 = 0x2000,
-   VERBOSE_SWAPBUFFERS          = 0x4000,
-   VERBOSE_DISPATCH             = 0x8000
+   VERBOSE_SWAPBUFFERS          = 0x4000
 };
 
 




More information about the mesa-commit mailing list