st/mesa: set debug callback async flag
authorNicolai Hähnle <nicolai.haehnle@amd.com>
Thu, 7 Jul 2016 07:25:31 +0000 (09:25 +0200)
committerNicolai Hähnle <nicolai.haehnle@amd.com>
Fri, 8 Jul 2016 08:59:29 +0000 (10:59 +0200)
Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/mesa/state_tracker/st_context.c
src/mesa/state_tracker/st_debug.c
src/mesa/state_tracker/st_debug.h
src/mesa/state_tracker/st_manager.c

index 472121581eb819130d3d50a6f9a7dc8e826c57f3..f1d2084d6bbfecc0cd2d21f559e0f94f96491cf4 100644 (file)
@@ -90,7 +90,8 @@ static void st_Enable(struct gl_context * ctx, GLenum cap, GLboolean state)
 
    switch (cap) {
    case GL_DEBUG_OUTPUT:
-      st_enable_debug_output(st, state);
+   case GL_DEBUG_OUTPUT_SYNCHRONOUS:
+      st_update_debug_callback(st);
       break;
    default:
       break;
index 214e22381480174a2570562fa154cfe4942b3cb7..b51f350d2167bd0de561ff4b7353c1eb8d180c42 100644 (file)
@@ -27,6 +27,7 @@
 
 
 #include "main/context.h"
+#include "main/debug_output.h"
 #include "program/prog_print.h"
 
 #include "pipe/p_state.h"
@@ -164,16 +165,17 @@ st_debug_message(void *data,
 }
 
 void
-st_enable_debug_output(struct st_context *st, boolean enable)
+st_update_debug_callback(struct st_context *st)
 {
    struct pipe_context *pipe = st->pipe;
 
    if (!pipe->set_debug_callback)
       return;
 
-   if (enable) {
+   if (_mesa_get_debug_state_int(st->ctx, GL_DEBUG_OUTPUT)) {
       struct pipe_debug_callback cb;
       memset(&cb, 0, sizeof(cb));
+      cb.async = !_mesa_get_debug_state_int(st->ctx, GL_DEBUG_OUTPUT_SYNCHRONOUS);
       cb.debug_message = st_debug_message;
       cb.data = st;
       pipe->set_debug_callback(pipe, &cb);
index e14360937a9f7b9e65126cad6e8f95d1e55aab66..6c1e915f68c53e15fdf448953b4e49c1125101cf 100644 (file)
@@ -63,7 +63,7 @@ extern int ST_DEBUG;
 
 void st_debug_init( void );
 
-void st_enable_debug_output(struct st_context *st, boolean enable);
+void st_update_debug_callback(struct st_context *st);
 
 static inline void
 ST_DBG( unsigned flag, const char *fmt, ... )
index 997d4284497f65fbf8294561e22077f731a6b478..d323c87de7dfee7996c673e3871ed0417becd071 100644 (file)
@@ -681,7 +681,7 @@ st_api_create_context(struct st_api *stapi, struct st_manager *smapi,
 
       st->ctx->Const.ContextFlags |= GL_CONTEXT_FLAG_DEBUG_BIT;
 
-      st_enable_debug_output(st, TRUE);
+      st_update_debug_callback(st);
    }
 
    if (attribs->flags & ST_CONTEXT_FLAG_FORWARD_COMPATIBLE)