Mesa (master): r300/compiler: Print immediate values after "dead constants" pass

Tom Stellard tstellar at kemper.freedesktop.org
Tue Sep 28 06:17:47 UTC 2010


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

Author: Tom Stellard <tstellar at gmail.com>
Date:   Sun Sep 26 22:16:19 2010 -0700

r300/compiler: Print immediate values after "dead constants" pass

---

 src/mesa/drivers/dri/r300/compiler/radeon_code.c   |   14 ++++++++++++++
 src/mesa/drivers/dri/r300/compiler/radeon_code.h   |    1 +
 .../dri/r300/compiler/radeon_remove_constants.c    |    3 +++
 3 files changed, 18 insertions(+), 0 deletions(-)

diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_code.c b/src/mesa/drivers/dri/r300/compiler/radeon_code.c
index 0eab18c..6842fb8 100644
--- a/src/mesa/drivers/dri/r300/compiler/radeon_code.c
+++ b/src/mesa/drivers/dri/r300/compiler/radeon_code.c
@@ -28,6 +28,7 @@
 #include "radeon_code.h"
 
 #include <stdlib.h>
+#include <stdio.h>
 #include <string.h>
 
 #include "radeon_program.h"
@@ -171,3 +172,16 @@ unsigned rc_constants_add_immediate_scalar(struct rc_constant_list * c, float da
 
 	return rc_constants_add(c, &constant);
 }
+
+void rc_constants_print(struct rc_constant_list * c)
+{
+	unsigned int i;
+	for(i = 0; i < c->Count; i++) {
+		if (c->Constants[i].Type == RC_CONSTANT_IMMEDIATE) {
+			float * values = c->Constants[i].u.Immediate;
+			fprintf(stderr, "CONST[%u] = "
+				"{ %10.4f %10.4f %10.4f %10.4f }\n",
+				i, values[0],values[1], values[2], values[3]);
+		}
+	}
+}
diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_code.h b/src/mesa/drivers/dri/r300/compiler/radeon_code.h
index 2dd9c5e..cfb6df2 100644
--- a/src/mesa/drivers/dri/r300/compiler/radeon_code.h
+++ b/src/mesa/drivers/dri/r300/compiler/radeon_code.h
@@ -90,6 +90,7 @@ unsigned rc_constants_add(struct rc_constant_list * c, struct rc_constant * cons
 unsigned rc_constants_add_state(struct rc_constant_list * c, unsigned state1, unsigned state2);
 unsigned rc_constants_add_immediate_vec4(struct rc_constant_list * c, const float * data);
 unsigned rc_constants_add_immediate_scalar(struct rc_constant_list * c, float data, unsigned * swizzle);
+void rc_constants_print(struct rc_constant_list * c);
 
 /**
  * Compare functions.
diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_remove_constants.c b/src/mesa/drivers/dri/r300/compiler/radeon_remove_constants.c
index d111319..2e0e4ef 100644
--- a/src/mesa/drivers/dri/r300/compiler/radeon_remove_constants.c
+++ b/src/mesa/drivers/dri/r300/compiler/radeon_remove_constants.c
@@ -146,4 +146,7 @@ void rc_remove_unused_constants(struct radeon_compiler *c, void *user)
 
         free(const_used);
         free(inv_remap_table);
+
+	if (c->Debug)
+		rc_constants_print(&c->Program.Constants);
 }




More information about the mesa-commit mailing list