[Mesa-dev] [PATCH 2/2] radeonsi: dump full shader disassemblies into ddebug logs

Marek Olšák maraeo at gmail.com
Thu Feb 25 16:42:53 UTC 2016


From: Marek Olšák <marek.olsak at amd.com>

including prolog and epilog disassemblies
---
 src/gallium/drivers/radeonsi/si_debug.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_debug.c b/src/gallium/drivers/radeonsi/si_debug.c
index e16ebbd..7c2b745 100644
--- a/src/gallium/drivers/radeonsi/si_debug.c
+++ b/src/gallium/drivers/radeonsi/si_debug.c
@@ -34,15 +34,15 @@
 
 DEBUG_GET_ONCE_OPTION(replace_shaders, "RADEON_REPLACE_SHADERS", NULL)
 
-static void si_dump_shader(struct si_shader_ctx_state *state, const char *name,
-			   FILE *f)
+static void si_dump_shader(struct si_screen *sscreen,
+			   struct si_shader_ctx_state *state, FILE *f)
 {
 	if (!state->cso || !state->current)
 		return;
 
-	fprintf(f, "%s shader disassembly:\n", name);
 	si_dump_shader_key(state->cso->type, &state->current->key, f);
-	fprintf(f, "%s\n\n", state->current->binary.disasm_string);
+	si_shader_dump(sscreen, state->current, NULL,
+		       state->cso->info.processor, f);
 }
 
 /**
@@ -670,11 +670,11 @@ static void si_dump_debug_state(struct pipe_context *ctx, FILE *f,
 		si_dump_debug_registers(sctx, f);
 
 	si_dump_framebuffer(sctx, f);
-	si_dump_shader(&sctx->vs_shader, "Vertex", f);
-	si_dump_shader(&sctx->tcs_shader, "Tessellation control", f);
-	si_dump_shader(&sctx->tes_shader, "Tessellation evaluation", f);
-	si_dump_shader(&sctx->gs_shader, "Geometry", f);
-	si_dump_shader(&sctx->ps_shader, "Fragment", f);
+	si_dump_shader(sctx->screen, &sctx->vs_shader, f);
+	si_dump_shader(sctx->screen, &sctx->tcs_shader, f);
+	si_dump_shader(sctx->screen, &sctx->tes_shader, f);
+	si_dump_shader(sctx->screen, &sctx->gs_shader, f);
+	si_dump_shader(sctx->screen, &sctx->ps_shader, f);
 
 	si_dump_last_bo_list(sctx, f);
 	si_dump_last_ib(sctx, f);
-- 
2.5.0



More information about the mesa-dev mailing list