[Mesa-dev] [PATCH 06/16] radeonsi: implement pipe_context::set_log_context

Nicolai Hähnle nhaehnle at gmail.com
Wed Aug 16 11:05:36 UTC 2017


From: Nicolai Hähnle <nicolai.haehnle at amd.com>

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.
---
 src/gallium/drivers/radeon/r600_pipe_common.h | 3 +++
 src/gallium/drivers/radeonsi/si_pipe.c        | 9 +++++++++
 2 files changed, 12 insertions(+)

diff --git a/src/gallium/drivers/radeon/r600_pipe_common.h b/src/gallium/drivers/radeon/r600_pipe_common.h
index 14bc63ed2ba..01e097a4595 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)
@@ -651,6 +653,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 cac1d015593..4aca6104ee9 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;
-- 
2.11.0



More information about the mesa-dev mailing list