summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_dump.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/src/gallium/auxiliary/tgsi/tgsi_dump.c b/src/gallium/auxiliary/tgsi/tgsi_dump.c
index 4309d1bc76f..a168c949280 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_dump.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_dump.c
@@ -518,8 +518,23 @@ tgsi_dump(
uint flags )
{
static char str[4096];
-
+ uint len;
+ char *p = str;
+
tgsi_dump_str(tokens, flags, str, sizeof(str));
-
- debug_printf("%s", str);
+
+ /* Workaround output buffer size limitations.
+ */
+ len = strlen( str );
+ while (len > 256) {
+ char piggy_bank;
+
+ piggy_bank = p[256];
+ p[256] = '\0';
+ debug_printf( "%s", p );
+ p[256] = piggy_bank;
+ p += 256;
+ len -= 256;
+ }
+ debug_printf( "%s", p );
}