summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKeith Whitwell <[email protected]>2008-03-20 13:10:32 +0000
committerKeith Whitwell <[email protected]>2008-03-20 13:10:32 +0000
commita88202d3b02a24a3bfff95c5e375ead44dae4c5e (patch)
treeaed505415e9dbaba151e1a186384178a74a6b862
parent122ed506f4b808503b230bade421018614dbe696 (diff)
gallium: add debug facility to dump random blobs as hex
-rw-r--r--src/gallium/auxiliary/util/p_debug.c18
-rw-r--r--src/gallium/include/pipe/p_debug.h8
2 files changed, 26 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/util/p_debug.c b/src/gallium/auxiliary/util/p_debug.c
index bd3a0221eaa..c51e9e6a692 100644
--- a/src/gallium/auxiliary/util/p_debug.c
+++ b/src/gallium/auxiliary/util/p_debug.c
@@ -85,6 +85,22 @@ void debug_printf(const char *format, ...)
}
+void debug_print_blob( const char *name,
+ const void *blob,
+ unsigned size )
+{
+ const unsigned *ublob = (const unsigned *)blob;
+ unsigned i;
+
+ debug_printf("%s (%d dwords%s)\n", name, size/4,
+ size%4 ? "... plus a few bytes" : "");
+
+ for (i = 0; i < size/4; i++) {
+ debug_printf("%d:\t%08x\n", i, ublob[i]);
+ }
+}
+
+
/* TODO: implement a debug_abort that calls EngBugCheckEx on WIN32 */
@@ -240,3 +256,5 @@ debug_dump_flags(const struct debug_named_value *names,
return output;
}
+
+
diff --git a/src/gallium/include/pipe/p_debug.h b/src/gallium/include/pipe/p_debug.h
index e924c1ef606..14f8056924d 100644
--- a/src/gallium/include/pipe/p_debug.h
+++ b/src/gallium/include/pipe/p_debug.h
@@ -73,6 +73,14 @@ extern "C" {
*/
void debug_printf(const char *format, ...);
+
+/* Dump a blob in hex to the same place that debug_printf sends its
+ * messages:
+ */
+void debug_print_blob( const char *name,
+ const void *blob,
+ unsigned size );
+
/**
* @sa debug_printf
*/