mesa: Dump shader source before validating the shader.
authorEric Anholt <eric@anholt.net>
Tue, 17 Aug 2010 19:37:49 +0000 (12:37 -0700)
committerEric Anholt <eric@anholt.net>
Tue, 17 Aug 2010 19:39:03 +0000 (12:39 -0700)
This will make extracting source to produce minimal testcases for
shader compile issues easier.

src/mesa/program/ir_to_mesa.cpp

index 1fb578516ce8287f71e79fd20872460d8fa6abde..7fff66c78b1655251ffa9b423832604483fc899d 100644 (file)
@@ -2627,6 +2627,11 @@ _mesa_glsl_compile_shader(GLcontext *ctx, struct gl_shader *shader)
    state->error = preprocess(state, &source, &state->info_log,
                             &ctx->Extensions);
 
+   if (ctx->Shader.Flags & GLSL_DUMP) {
+      printf("GLSL source for shader %d:\n", shader->Name);
+      printf("%s\n", shader->Source);
+   }
+
    if (!state->error) {
      _mesa_glsl_lexer_ctor(state, source);
      _mesa_glsl_parse(state);
@@ -2662,15 +2667,10 @@ _mesa_glsl_compile_shader(GLcontext *ctx, struct gl_shader *shader)
       _mesa_write_shader_to_file(shader);
    }
 
-   if (ctx->Shader.Flags & GLSL_DUMP) {
-      printf("GLSL source for shader %d:\n", shader->Name);
-      printf("%s\n", shader->Source);
-
-      if (shader->CompileStatus) {
-        printf("GLSL IR for shader %d:\n", shader->Name);
-        _mesa_print_ir(shader->ir, NULL);
-        printf("\n\n");
-      }
+   if ((ctx->Shader.Flags & GLSL_DUMP) && shader->CompileStatus) {
+      printf("GLSL IR for shader %d:\n", shader->Name);
+      _mesa_print_ir(shader->ir, NULL);
+      printf("\n\n");
    }
 
    /* Retain any live IR, but trash the rest. */