From 084ca0d8e51ae0a5cca6cfc7e9d018d0b22b6fb7 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Nicolai=20H=C3=A4hnle?= Date: Thu, 7 Jul 2016 09:25:31 +0200 Subject: [PATCH] st/mesa: set debug callback async flag MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Reviewed-by: Edward O'Callaghan Reviewed-by: Marek Olšák --- src/mesa/state_tracker/st_context.c | 3 ++- src/mesa/state_tracker/st_debug.c | 6 ++++-- src/mesa/state_tracker/st_debug.h | 2 +- src/mesa/state_tracker/st_manager.c | 2 +- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/mesa/state_tracker/st_context.c b/src/mesa/state_tracker/st_context.c index 4721215..f1d2084 100644 --- a/src/mesa/state_tracker/st_context.c +++ b/src/mesa/state_tracker/st_context.c @@ -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; diff --git a/src/mesa/state_tracker/st_debug.c b/src/mesa/state_tracker/st_debug.c index 214e223..b51f350 100644 --- a/src/mesa/state_tracker/st_debug.c +++ b/src/mesa/state_tracker/st_debug.c @@ -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); diff --git a/src/mesa/state_tracker/st_debug.h b/src/mesa/state_tracker/st_debug.h index e143609..6c1e915 100644 --- a/src/mesa/state_tracker/st_debug.h +++ b/src/mesa/state_tracker/st_debug.h @@ -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, ... ) diff --git a/src/mesa/state_tracker/st_manager.c b/src/mesa/state_tracker/st_manager.c index 997d428..d323c87 100644 --- a/src/mesa/state_tracker/st_manager.c +++ b/src/mesa/state_tracker/st_manager.c @@ -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) -- 2.7.4