summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorbin Simpson <MostAwesomeDude@gmail.com>2009-06-04 21:38:33 -0700
committerCorbin Simpson <MostAwesomeDude@gmail.com>2009-06-04 23:27:46 -0700
commitfb7d1fb0f0ce4137b6cb84198997241d190d13a8 (patch)
tree876279db5a4416094c0cf2d9f3c05d19f522d871
parent36705ee044681da9899d0950c22ae7baa10c3d33 (diff)
r300: Moar vs debug.
-rw-r--r--src/gallium/drivers/r300/r300_debug.c19
-rw-r--r--src/gallium/drivers/r300/r300_debug.h12
2 files changed, 28 insertions, 3 deletions
diff --git a/src/gallium/drivers/r300/r300_debug.c b/src/gallium/drivers/r300/r300_debug.c
index ffc93eb591..32fa739a1e 100644
--- a/src/gallium/drivers/r300/r300_debug.c
+++ b/src/gallium/drivers/r300/r300_debug.c
@@ -165,14 +165,27 @@ static void r300_vs_op_dump(uint32_t op)
}
}
+void r300_vs_src_dump(uint32_t src)
+{
+ debug_printf(" %s/%s/%s/%s\n",
+ r300_vs_swiz_debug[(src >> 13) & 0x7],
+ r300_vs_swiz_debug[(src >> 16) & 0x7],
+ r300_vs_swiz_debug[(src >> 19) & 0x7],
+ r300_vs_swiz_debug[(src >> 22) & 0x7]);
+}
+
void r300_vs_dump(struct r300_vertex_shader* vs)
{
int i;
for (i = 0; i < vs->instruction_count; i++) {
+ debug_printf("%d: op: 0x%08x", i, vs->instructions[i].inst0);
r300_vs_op_dump(vs->instructions[i].inst0);
- debug_printf("inst1: 0x%x\n", vs->instructions[i].inst1);
- debug_printf("inst2: 0x%x\n", vs->instructions[i].inst2);
- debug_printf("inst3: 0x%x\n", vs->instructions[i].inst3);
+ debug_printf(" src0: 0x%08x", vs->instructions[i].inst1);
+ r300_vs_src_dump(vs->instructions[i].inst1);
+ debug_printf(" src1: 0x%08x", vs->instructions[i].inst2);
+ r300_vs_src_dump(vs->instructions[i].inst2);
+ debug_printf(" src2: 0x%08x", vs->instructions[i].inst3);
+ r300_vs_src_dump(vs->instructions[i].inst3);
}
}
diff --git a/src/gallium/drivers/r300/r300_debug.h b/src/gallium/drivers/r300/r300_debug.h
index 6306594099..3939d834c2 100644
--- a/src/gallium/drivers/r300/r300_debug.h
+++ b/src/gallium/drivers/r300/r300_debug.h
@@ -173,6 +173,18 @@ static char* r300_vs_me_ops[] = {
" (reserved)",
};
+/* XXX refactor to avoid clashing symbols */
+static char* r300_vs_swiz_debug[] = {
+ "X",
+ "Y",
+ "Z",
+ "W",
+ "0",
+ "1",
+ "U",
+ "U",
+};
+
void r500_fs_dump(struct r500_fragment_shader* fs);
void r300_vs_dump(struct r300_vertex_shader* vs);