[Mesa-dev] [PATCH 3/8] radeonsi: dump the shader key when dumping shaders

Marek Olšák maraeo at gmail.com
Mon Feb 23 12:03:07 PST 2015


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

---
 src/gallium/drivers/radeonsi/si_shader.c | 38 ++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c
index e6849ad..b0417ed 100644
--- a/src/gallium/drivers/radeonsi/si_shader.c
+++ b/src/gallium/drivers/radeonsi/si_shader.c
@@ -2740,6 +2740,43 @@ static int si_generate_gs_copy_shader(struct si_screen *sscreen,
 	return r;
 }
 
+static void si_dump_key(unsigned shader, union si_shader_key *key)
+{
+	int i;
+
+	fprintf(stderr, "SHADER KEY\n");
+
+	switch (shader) {
+	case PIPE_SHADER_VERTEX:
+		fprintf(stderr, "  instance_divisors = {");
+		for (i = 0; i < Elements(key->vs.instance_divisors); i++)
+			fprintf(stderr, !i ? "%u" : ", %u",
+				key->vs.instance_divisors[i]);
+		fprintf(stderr, "}\n");
+
+		if (key->vs.as_es)
+			fprintf(stderr, "  gs_used_inputs = 0x%"PRIx64"\n",
+				key->vs.gs_used_inputs);
+		fprintf(stderr, "  as_es = %u\n", key->vs.as_es);
+		break;
+
+	case PIPE_SHADER_GEOMETRY:
+		break;
+
+	case PIPE_SHADER_FRAGMENT:
+		fprintf(stderr, "  export_16bpc = 0x%X\n", key->ps.export_16bpc);
+		fprintf(stderr, "  last_cbuf = %u\n", key->ps.last_cbuf);
+		fprintf(stderr, "  color_two_side = %u\n", key->ps.color_two_side);
+		fprintf(stderr, "  alpha_func = %u\n", key->ps.alpha_func);
+		fprintf(stderr, "  alpha_to_one = %u\n", key->ps.alpha_to_one);
+		fprintf(stderr, "  poly_stipple = %u\n", key->ps.poly_stipple);
+		break;
+
+	default:
+		assert(0);
+	}
+}
+
 int si_shader_create(struct si_screen *sscreen, struct si_shader *shader)
 {
 	struct si_shader_selector *sel = shader->selector;
@@ -2762,6 +2799,7 @@ int si_shader_create(struct si_screen *sscreen, struct si_shader *shader)
 	/* Dump TGSI code before doing TGSI->LLVM conversion in case the
 	 * conversion fails. */
 	if (dump) {
+		si_dump_key(sel->type, &shader->key);
 		tgsi_dump(tokens, 0);
 		si_dump_streamout(&sel->so);
 	}
-- 
2.1.0



More information about the mesa-dev mailing list