Mesa (master): radeonsi: split descriptor list dumping

Nicolai Hähnle nh at kemper.freedesktop.org
Wed May 10 06:59:32 UTC 2017


Module: Mesa
Branch: master
Commit: 1a3bedd4b7f963a0f6e68b1149cf7baa1a82f90c
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1a3bedd4b7f963a0f6e68b1149cf7baa1a82f90c

Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date:   Mon May  8 13:02:33 2017 +0200

radeonsi: split descriptor list dumping

Prepare for dumping CS descriptor list.

Reviewed-by: Marek Olšák <marek.olsak at amd.com>

---

 src/gallium/drivers/radeonsi/si_debug.c | 37 +++++++++++++++++++--------------
 1 file changed, 21 insertions(+), 16 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_debug.c b/src/gallium/drivers/radeonsi/si_debug.c
index b9e912dcd4..2e727f6adb 100644
--- a/src/gallium/drivers/radeonsi/si_debug.c
+++ b/src/gallium/drivers/radeonsi/si_debug.c
@@ -440,17 +440,12 @@ static void si_dump_descriptor_list(struct si_descriptors *desc,
 }
 
 static void si_dump_descriptors(struct si_context *sctx,
-				struct si_shader_ctx_state *state,
-				FILE *f)
+				enum pipe_shader_type processor,
+				const struct tgsi_shader_info *info, FILE *f)
 {
-	if (!state->cso || !state->current)
-		return;
-
-	unsigned type = state->cso->type;
-	const struct tgsi_shader_info *info = &state->cso->info;
 	struct si_descriptors *descs =
 		&sctx->descriptors[SI_DESCS_FIRST_SHADER +
-				   type * SI_NUM_SHADER_DESCS];
+				   processor * SI_NUM_SHADER_DESCS];
 	static const char *shader_name[] = {"VS", "PS", "GS", "TCS", "TES", "CS"};
 
 	static const char *elem_name[] = {
@@ -466,16 +461,26 @@ static void si_dump_descriptors(struct si_context *sctx,
 		util_last_bit(info->images_declared),
 	};
 
-	if (type == PIPE_SHADER_VERTEX) {
-		si_dump_descriptor_list(&sctx->vertex_buffers, shader_name[type],
+	if (processor == PIPE_SHADER_VERTEX) {
+		si_dump_descriptor_list(&sctx->vertex_buffers, shader_name[processor],
 					" - Vertex buffer", info->num_inputs, f);
 	}
 
 	for (unsigned i = 0; i < SI_NUM_SHADER_DESCS; ++i, ++descs)
-		si_dump_descriptor_list(descs, shader_name[type], elem_name[i],
+		si_dump_descriptor_list(descs, shader_name[processor], elem_name[i],
 					num_elements[i], f);
 }
 
+static void si_dump_gfx_descriptors(struct si_context *sctx,
+				    const struct si_shader_ctx_state *state,
+				    FILE *f)
+{
+	if (!state->cso || !state->current)
+		return;
+
+	si_dump_descriptors(sctx, state->cso->type, &state->cso->info, f);
+}
+
 struct si_shader_inst {
 	char text[160];  /* one disasm line */
 	unsigned offset; /* instruction offset */
@@ -773,11 +778,11 @@ static void si_dump_debug_state(struct pipe_context *ctx, FILE *f,
 
 		si_dump_descriptor_list(&sctx->descriptors[SI_DESCS_RW_BUFFERS],
 					"", "RW buffers", SI_NUM_RW_BUFFERS, f);
-		si_dump_descriptors(sctx, &sctx->vs_shader, f);
-		si_dump_descriptors(sctx, &sctx->tcs_shader, f);
-		si_dump_descriptors(sctx, &sctx->tes_shader, f);
-		si_dump_descriptors(sctx, &sctx->gs_shader, f);
-		si_dump_descriptors(sctx, &sctx->ps_shader, f);
+		si_dump_gfx_descriptors(sctx, &sctx->vs_shader, f);
+		si_dump_gfx_descriptors(sctx, &sctx->tcs_shader, f);
+		si_dump_gfx_descriptors(sctx, &sctx->tes_shader, f);
+		si_dump_gfx_descriptors(sctx, &sctx->gs_shader, f);
+		si_dump_gfx_descriptors(sctx, &sctx->ps_shader, f);
 	}
 
 	if (flags & PIPE_DUMP_LAST_COMMAND_BUFFER) {




More information about the mesa-commit mailing list