diff options
Diffstat (limited to 'src/gallium/drivers/freedreno')
-rw-r--r-- | src/gallium/drivers/freedreno/freedreno_context.c | 13 | ||||
-rw-r--r-- | src/gallium/drivers/freedreno/freedreno_context.h | 2 |
2 files changed, 15 insertions, 0 deletions
diff --git a/src/gallium/drivers/freedreno/freedreno_context.c b/src/gallium/drivers/freedreno/freedreno_context.c index c54bb1091f7..52557d16068 100644 --- a/src/gallium/drivers/freedreno/freedreno_context.c +++ b/src/gallium/drivers/freedreno/freedreno_context.c @@ -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); diff --git a/src/gallium/drivers/freedreno/freedreno_context.h b/src/gallium/drivers/freedreno/freedreno_context.h index 86992960960..e65688e6c58 100644 --- a/src/gallium/drivers/freedreno/freedreno_context.h +++ b/src/gallium/drivers/freedreno/freedreno_context.h @@ -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); |