Mesa (master): freedreno/ir3: hack for old compiler

Rob Clark robclark at kemper.freedesktop.org
Thu Jan 8 00:38:21 UTC 2015


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

Author: Rob Clark <robclark at freedesktop.org>
Date:   Tue Dec 30 19:56:56 2014 -0500

freedreno/ir3: hack for old compiler

Old compiler doesn't have ir3_block's.. so we need a special path.  This
hack can be dropped when ir3_compiler_old is retired.

Signed-off-by: Rob Clark <robclark at freedesktop.org>

---

 src/gallium/drivers/freedreno/ir3/ir3_cmdline.c |   23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/src/gallium/drivers/freedreno/ir3/ir3_cmdline.c b/src/gallium/drivers/freedreno/ir3/ir3_cmdline.c
index f28ce27..081143d 100644
--- a/src/gallium/drivers/freedreno/ir3/ir3_cmdline.c
+++ b/src/gallium/drivers/freedreno/ir3/ir3_cmdline.c
@@ -59,6 +59,7 @@ static void dump_info(struct ir3_shader_variant *so, const char *str)
 
 		debug_printf("; %s: %s\n", type, str);
 
+if (block) {
 		for (i = 0; i < block->ninputs; i++) {
 			if (!block->inputs[i])
 				continue;
@@ -81,6 +82,28 @@ static void dump_info(struct ir3_shader_variant *so, const char *str)
 					(reg->flags & IR3_REG_HALF) ? "h" : "",
 					(regid >> 2), "xyzw"[regid & 0x3], i);
 		}
+} else {
+		/* hack to deal w/ old compiler:
+		 * TODO maybe we can just keep this path?  I guess should
+		 * be good enough (other than not able to deal w/ half)
+		 */
+		for (i = 0; i < so->inputs_count; i++) {
+			unsigned j, regid = so->inputs[i].regid;
+			for (j = 0; j < so->inputs[i].ncomp; j++) {
+				debug_printf("@in(r%d.%c)\tin%d\n",
+						(regid >> 2), "xyzw"[regid & 0x3], (i * 4) + j);
+				regid++;
+			}
+		}
+		for (i = 0; i < so->outputs_count; i++) {
+			unsigned j, regid = so->outputs[i].regid;
+			for (j = 0; j < 4; j++) {
+				debug_printf("@out(r%d.%c)\tout%d\n",
+						(regid >> 2), "xyzw"[regid & 0x3], (i * 4) + j);
+				regid++;
+			}
+		}
+}
 
 		disasm_a3xx(bin, info.sizedwords, 0, so->type);
 




More information about the mesa-commit mailing list