i965/vs: Only do INTEL_DEBUG=perf when there's a GLSL shader.
authorKenneth Graunke <kenneth@whitecape.org>
Tue, 9 Oct 2012 17:19:16 +0000 (10:19 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 1 Nov 2012 21:29:12 +0000 (14:29 -0700)
This will become necessary once we start supporting ARB programs and
fixed function in this backend.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
src/mesa/drivers/dri/i965/brw_vec4_emit.cpp

index 479b0a607aae1ab51ee3b29b33cb69de57a9711f..ab9bc66c3888815ae3522bfb9a8cb2f30634225a 100644 (file)
@@ -1048,7 +1048,7 @@ brw_vs_emit(struct gl_shader_program *prog, struct brw_vs_compile *c)
       printf("\n\n");
    }
 
-   if (unlikely(INTEL_DEBUG & DEBUG_PERF)) {
+   if (unlikely(INTEL_DEBUG & DEBUG_PERF) && shader) {
       if (shader->compiled_once) {
          brw_vs_debug_recompile(brw, prog, &c->key);
       }
@@ -1056,6 +1056,7 @@ brw_vs_emit(struct gl_shader_program *prog, struct brw_vs_compile *c)
          perf_debug("VS compile took %.03f ms and stalled the GPU\n",
                     (get_time() - start_time) * 1000);
       }
+      shader->compiled_once = true;
    }
 
    vec4_visitor v(c, prog, shader);
@@ -1065,8 +1066,6 @@ brw_vs_emit(struct gl_shader_program *prog, struct brw_vs_compile *c)
       return false;
    }
 
-   shader->compiled_once = true;
-
    return true;
 }