From: Nicolai Hähnle Date: Fri, 4 Aug 2017 13:54:56 +0000 (+0200) Subject: radeonsi: implement pipe_context::set_log_context X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=bbaad18c04ad31eaaa945cf644f5f9693c2e1f5e;p=mesa.git radeonsi: implement pipe_context::set_log_context We'll add radeonsi-specific code to set_log_context in later patches, but we may want to log from common code. Hence keep the log pointer in r600_common_context. Reviewed-by: Marek Olšák --- diff --git a/src/gallium/drivers/radeon/r600_pipe_common.h b/src/gallium/drivers/radeon/r600_pipe_common.h index c7e4c8a7880..af84c788a93 100644 --- a/src/gallium/drivers/radeon/r600_pipe_common.h +++ b/src/gallium/drivers/radeon/r600_pipe_common.h @@ -47,6 +47,8 @@ #include "util/u_transfer.h" #include "util/u_threaded_context.h" +struct u_log_context; + #define ATI_VENDOR_ID 0x1002 #define R600_RESOURCE_FLAG_TRANSFER (PIPE_RESOURCE_FLAG_DRV_PRIV << 0) @@ -652,6 +654,7 @@ struct r600_common_context { struct pipe_debug_callback debug; struct pipe_device_reset_callback device_reset_callback; + struct u_log_context *log; void *query_result_shader; diff --git a/src/gallium/drivers/radeonsi/si_pipe.c b/src/gallium/drivers/radeonsi/si_pipe.c index 80a77a8f1f2..88fa97d3b0e 100644 --- a/src/gallium/drivers/radeonsi/si_pipe.c +++ b/src/gallium/drivers/radeonsi/si_pipe.c @@ -28,6 +28,7 @@ #include "radeon/radeon_uvd.h" #include "util/hash_table.h" +#include "util/u_log.h" #include "util/u_memory.h" #include "util/u_suballoc.h" #include "util/u_tests.h" @@ -157,6 +158,13 @@ si_create_llvm_target_machine(struct si_screen *sscreen) LLVMCodeModelDefault); } +static void si_set_log_context(struct pipe_context *ctx, + struct u_log_context *log) +{ + struct si_context *sctx = (struct si_context *)ctx; + sctx->b.log = log; +} + static struct pipe_context *si_create_context(struct pipe_screen *screen, unsigned flags) { @@ -175,6 +183,7 @@ static struct pipe_context *si_create_context(struct pipe_screen *screen, sctx->b.b.priv = NULL; sctx->b.b.destroy = si_destroy_context; sctx->b.b.emit_string_marker = si_emit_string_marker; + sctx->b.b.set_log_context = si_set_log_context; sctx->b.set_atom_dirty = (void *)si_set_atom_dirty; sctx->screen = sscreen; /* Easy accessing of screen/winsys. */ sctx->is_debug = (flags & PIPE_CONTEXT_DEBUG) != 0;