radeonsi: add a debug flag that disables printing ISA in shader dumps
authorMarek Olšák <marek.olsak@amd.com>
Sat, 25 Jul 2015 14:15:48 +0000 (16:15 +0200)
committerMarek Olšák <marek.olsak@amd.com>
Fri, 31 Jul 2015 14:49:17 +0000 (16:49 +0200)
src/gallium/drivers/radeon/r600_pipe_common.c
src/gallium/drivers/radeon/r600_pipe_common.h
src/gallium/drivers/radeonsi/si_shader.c

index d0162b514dcbd0a3525be6fd67972f9e2cff1209..75e820144e39cdd046fbee09acf324eafcd97a05 100644 (file)
@@ -337,6 +337,7 @@ static const struct debug_named_value common_debug_options[] = {
        { "tes", DBG_TES, "Print tessellation evaluation shaders" },
        { "noir", DBG_NO_IR, "Don't print the LLVM IR"},
        { "notgsi", DBG_NO_TGSI, "Don't print the TGSI"},
+       { "noasm", DBG_NO_ASM, "Don't print disassembled shaders"},
 
        /* features */
        { "nodma", DBG_NO_ASYNC_DMA, "Disable asynchronous DMA" },
index 72f4715975efb1bbfcc9b4baab05bd25d5f4833e..e2a60c59c821e0e45721afd8fd1b4765b87ab2b2 100644 (file)
@@ -83,6 +83,7 @@
 #define DBG_TES                        (1 << 11)
 #define DBG_NO_IR              (1 << 12)
 #define DBG_NO_TGSI            (1 << 13)
+#define DBG_NO_ASM             (1 << 14)
 /* Bits 21-31 are reserved for the r600g driver. */
 /* features */
 #define DBG_NO_ASYNC_DMA       (1llu << 32)
index dec68b3a8f044849761104503893cd1e9c04944c..4151e011d582664f3aa652b21b5d293f97d9ca18 100644 (file)
@@ -3811,15 +3811,17 @@ int si_shader_binary_read(struct si_screen *sscreen, struct si_shader *shader)
        si_shader_binary_upload(sscreen, shader);
 
        if (dump) {
-               if (binary->disasm_string) {
-                       fprintf(stderr, "\nShader Disassembly:\n\n");
-                       fprintf(stderr, "%s\n", binary->disasm_string);
-               } else {
-                       fprintf(stderr, "SI CODE:\n");
-                       for (i = 0; i < binary->code_size; i+=4 ) {
-                               fprintf(stderr, "@0x%x: %02x%02x%02x%02x\n", i, binary->code[i + 3],
-                               binary->code[i + 2], binary->code[i + 1],
-                               binary->code[i]);
+               if (!(sscreen->b.debug_flags & DBG_NO_ASM)) {
+                       if (binary->disasm_string) {
+                               fprintf(stderr, "\nShader Disassembly:\n\n");
+                               fprintf(stderr, "%s\n", binary->disasm_string);
+                       } else {
+                               fprintf(stderr, "SI CODE:\n");
+                               for (i = 0; i < binary->code_size; i+=4 ) {
+                                       fprintf(stderr, "@0x%x: %02x%02x%02x%02x\n", i, binary->code[i + 3],
+                                       binary->code[i + 2], binary->code[i + 1],
+                                       binary->code[i]);
+                               }
                        }
                }