From 042a333028eba49f21b45cafaf9dd15d34c68033 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Kristian=20H=C3=B8gsberg?= Date: Thu, 9 Sep 2010 18:59:49 -0400 Subject: [PATCH] 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 2fa580283e8..a0bb0781063 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 c060c55c734..7421a36d35a 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 8a47316bea6..793f0c37d79 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 decc1dd77da..979bc4019ba 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 142243f5ee3..c61da62826f 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 e5c313304d1..526145aeccf 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 0c4e3d51a9d..6928d21a21e 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 bcd324b4432..a1a0a23bd2c 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 }; -- 2.30.2