mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 16:08:04 +02:00
st/mesa: set debug callback for debug contexts
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by: Marek Olšák <marek.olsak@amd.com> Reviewed-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
parent
fc76cc05e3
commit
c93c9d220b
1 changed files with 57 additions and 0 deletions
|
|
@ -623,6 +623,58 @@ st_context_destroy(struct st_context_iface *stctxi)
|
|||
st_destroy_context(st);
|
||||
}
|
||||
|
||||
static void
|
||||
st_debug_message(void *data,
|
||||
unsigned *id,
|
||||
enum pipe_debug_type ptype,
|
||||
const char *fmt,
|
||||
va_list args)
|
||||
{
|
||||
struct st_context *st = data;
|
||||
enum mesa_debug_source source;
|
||||
enum mesa_debug_type type;
|
||||
enum mesa_debug_severity severity;
|
||||
|
||||
switch (ptype) {
|
||||
case PIPE_DEBUG_TYPE_OUT_OF_MEMORY:
|
||||
source = MESA_DEBUG_SOURCE_API;
|
||||
type = MESA_DEBUG_TYPE_ERROR;
|
||||
severity = MESA_DEBUG_SEVERITY_MEDIUM;
|
||||
break;
|
||||
case PIPE_DEBUG_TYPE_ERROR:
|
||||
source = MESA_DEBUG_SOURCE_API;
|
||||
type = MESA_DEBUG_TYPE_ERROR;
|
||||
severity = MESA_DEBUG_SEVERITY_MEDIUM;
|
||||
break;
|
||||
case PIPE_DEBUG_TYPE_SHADER_INFO:
|
||||
source = MESA_DEBUG_SOURCE_SHADER_COMPILER;
|
||||
type = MESA_DEBUG_TYPE_OTHER;
|
||||
severity = MESA_DEBUG_SEVERITY_NOTIFICATION;
|
||||
break;
|
||||
case PIPE_DEBUG_TYPE_PERF_INFO:
|
||||
source = MESA_DEBUG_SOURCE_API;
|
||||
type = MESA_DEBUG_TYPE_PERFORMANCE;
|
||||
severity = MESA_DEBUG_SEVERITY_NOTIFICATION;
|
||||
break;
|
||||
case PIPE_DEBUG_TYPE_INFO:
|
||||
source = MESA_DEBUG_SOURCE_API;
|
||||
type = MESA_DEBUG_TYPE_OTHER;
|
||||
severity = MESA_DEBUG_SEVERITY_NOTIFICATION;
|
||||
break;
|
||||
case PIPE_DEBUG_TYPE_FALLBACK:
|
||||
source = MESA_DEBUG_SOURCE_API;
|
||||
type = MESA_DEBUG_TYPE_PERFORMANCE;
|
||||
severity = MESA_DEBUG_SEVERITY_NOTIFICATION;
|
||||
break;
|
||||
case PIPE_DEBUG_TYPE_CONFORMANCE:
|
||||
source = MESA_DEBUG_SOURCE_API;
|
||||
type = MESA_DEBUG_TYPE_OTHER;
|
||||
severity = MESA_DEBUG_SEVERITY_NOTIFICATION;
|
||||
break;
|
||||
}
|
||||
_mesa_gl_vdebug(st->ctx, id, source, type, severity, fmt, args);
|
||||
}
|
||||
|
||||
static struct st_context_iface *
|
||||
st_api_create_context(struct st_api *stapi, struct st_manager *smapi,
|
||||
const struct st_context_attribs *attribs,
|
||||
|
|
@ -677,6 +729,11 @@ st_api_create_context(struct st_api *stapi, struct st_manager *smapi,
|
|||
return NULL;
|
||||
}
|
||||
st->ctx->Const.ContextFlags |= GL_CONTEXT_FLAG_DEBUG_BIT;
|
||||
|
||||
if (pipe->set_debug_callback) {
|
||||
struct pipe_debug_callback cb = { st_debug_message, st };
|
||||
pipe->set_debug_callback(pipe, &cb);
|
||||
}
|
||||
}
|
||||
|
||||
if (attribs->flags & ST_CONTEXT_FLAG_FORWARD_COMPATIBLE)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue