mesa: Move MESA_GLSL=dump output to stderr.
authorKenneth Graunke <kenneth@whitecape.org>
Sat, 1 Mar 2014 08:11:18 +0000 (00:11 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Sun, 2 Mar 2014 21:37:09 +0000 (13:37 -0800)
i965 recently moved debug printfs to use stderr, including ones which
trigger on MESA_GLSL=dump.  This resulted in scrambled output.

For drivers using ir_to_mesa, print_program was already using stderr,
yet all the code around it was using stdout.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
src/mesa/main/shaderapi.c
src/mesa/program/ir_to_mesa.cpp

index cbf83900d729346ccc4e8516e13b4a86970a53a2..e2f3462af2b24cbb9905afc5f7970e65f0a4795e 100644 (file)
@@ -838,9 +838,10 @@ compile_shader(struct gl_context *ctx, GLuint shaderObj)
       sh->CompileStatus = GL_FALSE;
    } else {
       if (ctx->Shader.Flags & GLSL_DUMP) {
-         printf("GLSL source for %s shader %d:\n",
-                _mesa_shader_stage_to_string(sh->Stage), sh->Name);
-         printf("%s\n", sh->Source);
+         fprintf(stderr, "GLSL source for %s shader %d:\n",
+                 _mesa_shader_stage_to_string(sh->Stage), sh->Name);
+         fprintf(stderr, "%s\n", sh->Source);
+         fflush(stderr);
       }
 
       /* this call will set the shader->CompileStatus field to indicate if
@@ -854,16 +855,17 @@ compile_shader(struct gl_context *ctx, GLuint shaderObj)
 
       if (ctx->Shader.Flags & GLSL_DUMP) {
          if (sh->CompileStatus) {
-            printf("GLSL IR for shader %d:\n", sh->Name);
-            _mesa_print_ir(stdout, sh->ir, NULL);
-            printf("\n\n");
+            fprintf(stderr, "GLSL IR for shader %d:\n", sh->Name);
+            _mesa_print_ir(stderr, sh->ir, NULL);
+            fprintf(stderr, "\n\n");
          } else {
-            printf("GLSL shader %d failed to compile.\n", sh->Name);
+            fprintf(stderr, "GLSL shader %d failed to compile.\n", sh->Name);
          }
          if (sh->InfoLog && sh->InfoLog[0] != 0) {
-            printf("GLSL shader %d info log:\n", sh->Name);
-            printf("%s\n", sh->InfoLog);
+            fprintf(stderr, "GLSL shader %d info log:\n", sh->Name);
+            fprintf(stderr, "%s\n", sh->InfoLog);
          }
+         fflush(stderr);
       }
 
    }
index 06df41f897a5919fbc4f1fe036414809fdc7acde..9919874a6680431608a05d82c559219d799ae33e 100644 (file)
@@ -2918,16 +2918,17 @@ get_mesa_program(struct gl_context *ctx,
    set_branchtargets(&v, mesa_instructions, num_instructions);
 
    if (ctx->Shader.Flags & GLSL_DUMP) {
-      printf("\n");
-      printf("GLSL IR for linked %s program %d:\n", target_string,
-            shader_program->Name);
-      _mesa_print_ir(stdout, shader->ir, NULL);
-      printf("\n");
-      printf("\n");
-      printf("Mesa IR for linked %s program %d:\n", target_string,
-            shader_program->Name);
+      fprintf(stderr, "\n");
+      fprintf(stderr, "GLSL IR for linked %s program %d:\n", target_string,
+             shader_program->Name);
+      _mesa_print_ir(stderr, shader->ir, NULL);
+      fprintf(stderr, "\n");
+      fprintf(stderr, "\n");
+      fprintf(stderr, "Mesa IR for linked %s program %d:\n", target_string,
+             shader_program->Name);
       print_program(mesa_instructions, mesa_instruction_annotation,
                    num_instructions);
+      fflush(stderr);
    }
 
    prog->Instructions = mesa_instructions;
@@ -3097,12 +3098,12 @@ _mesa_glsl_link_shader(struct gl_context *ctx, struct gl_shader_program *prog)
 
    if (ctx->Shader.Flags & GLSL_DUMP) {
       if (!prog->LinkStatus) {
-        printf("GLSL shader program %d failed to link\n", prog->Name);
+        fprintf(stderr, "GLSL shader program %d failed to link\n", prog->Name);
       }
 
       if (prog->InfoLog && prog->InfoLog[0] != 0) {
-        printf("GLSL shader program %d info log:\n", prog->Name);
-        printf("%s\n", prog->InfoLog);
+        fprintf(stderr, "GLSL shader program %d info log:\n", prog->Name);
+        fprintf(stderr, "%s\n", prog->InfoLog);
       }
    }
 }