lima: add support for debug callback
authorErico Nunes <nunes.erico@gmail.com>
Sat, 3 Aug 2019 08:51:58 +0000 (10:51 +0200)
committerErico Nunes <nunes.erico@gmail.com>
Tue, 6 Aug 2019 13:43:26 +0000 (15:43 +0200)
This adds support for glDebugMessageCallback which is required to
support shader-db reports.

Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
Reviewed-by: Qiang Yu <yuq825@gmail.com>
src/gallium/drivers/lima/lima_context.c
src/gallium/drivers/lima/lima_context.h

index 558d2346653ede4cafb6fa61d152d454dce4069c..3c3887001bf2eb3a9569010fdc65d186027d3c21 100644 (file)
@@ -166,6 +166,18 @@ plb_pp_stream_compare(const void *key1, const void *key2)
    return memcmp(key1, key2, sizeof(struct lima_ctx_plb_pp_stream_key)) == 0;
 }
 
+static void
+lima_set_debug_callback(struct pipe_context *pctx,
+                        const struct pipe_debug_callback *cb)
+{
+   struct lima_context *ctx = lima_context(pctx);
+
+   if (cb)
+      ctx->debug = *cb;
+   else
+      memset(&ctx->debug, 0, sizeof(ctx->debug));
+}
+
 struct pipe_context *
 lima_context_create(struct pipe_screen *pscreen, void *priv, unsigned flags)
 {
@@ -184,6 +196,7 @@ lima_context_create(struct pipe_screen *pscreen, void *priv, unsigned flags)
 
    ctx->base.screen = pscreen;
    ctx->base.destroy = lima_context_destroy;
+   ctx->base.set_debug_callback = lima_set_debug_callback;
 
    lima_resource_context_init(ctx);
    lima_fence_context_init(ctx);
index c16baeef0bac7c4138ada4fe7887a3e6923ef4e5..0b232d72d1d82ae25b775c50f6b7bf11bb1b4f0c 100644 (file)
@@ -242,6 +242,8 @@ struct lima_context {
    struct lima_submit *pp_submit;
 
    int id;
+
+   struct pipe_debug_callback debug;
 };
 
 static inline struct lima_context *