freedreno: wire up core pipe_debug_callback
authorRob Clark <robclark@freedesktop.org>
Sun, 24 Apr 2016 20:42:15 +0000 (16:42 -0400)
committerRob Clark <robclark@freedesktop.org>
Sat, 30 Apr 2016 18:56:19 +0000 (14:56 -0400)
Signed-off-by: Rob Clark <robclark@freedesktop.org>
src/gallium/drivers/freedreno/freedreno_context.c
src/gallium/drivers/freedreno/freedreno_context.h

index c54bb1091f77ec10f8deae6176bb2b5a1981edf3..52557d160686fa6e3b0b243bc49b50353bcfc123 100644 (file)
@@ -211,6 +211,18 @@ fd_context_destroy(struct pipe_context *pctx)
        FREE(ctx);
 }
 
+static void
+fd_set_debug_callback(struct pipe_context *pctx,
+               const struct pipe_debug_callback *cb)
+{
+       struct fd_context *ctx = fd_context(pctx);
+
+       if (cb)
+               ctx->debug = *cb;
+       else
+               memset(&ctx->debug, 0, sizeof(ctx->debug));
+}
+
 struct pipe_context *
 fd_context_init(struct fd_context *ctx, struct pipe_screen *pscreen,
                const uint8_t *primtypes, void *priv)
@@ -237,6 +249,7 @@ fd_context_init(struct fd_context *ctx, struct pipe_screen *pscreen,
        pctx->priv = priv;
        pctx->flush = fd_context_flush;
        pctx->emit_string_marker = fd_emit_string_marker;
+       pctx->set_debug_callback = fd_set_debug_callback;
 
        for (i = 0; i < ARRAY_SIZE(ctx->rings); i++) {
                ctx->rings[i] = fd_ringbuffer_new(screen->pipe, 0x100000);
index 86992960960d49c7fe9331d686d405d0b29ee851..e65688e6c589dbf1bfa1c073ce527c3d75217e1f 100644 (file)
@@ -369,6 +369,8 @@ struct fd_context {
        bool cond_cond; /* inverted rendering condition */
        uint cond_mode;
 
+       struct pipe_debug_callback debug;
+
        /* GMEM/tile handling fxns: */
        void (*emit_tile_init)(struct fd_context *ctx);
        void (*emit_tile_prep)(struct fd_context *ctx, struct fd_tile *tile);