ir_to_mesa: Don't do lowering passes on an errored-out shader.
authorEric Anholt <eric@anholt.net>
Mon, 19 Jul 2010 16:44:30 +0000 (09:44 -0700)
committerEric Anholt <eric@anholt.net>
Mon, 19 Jul 2010 16:44:30 +0000 (09:44 -0700)
src/mesa/shader/ir_to_mesa.cpp

index c75a13d06efb30caea5cf05b766879d3a12f318b..a7799cc01dbd75628dea06e91e76adbed9de2009 100644 (file)
@@ -2185,13 +2185,13 @@ _mesa_glsl_compile_shader(GLcontext *ctx, struct gl_shader *shader)
    if (!state->error && !state->translation_unit.is_empty())
       _mesa_ast_to_hir(shader->ir, state);
 
-   /* Lowering */
-   do_mat_op_to_vec(shader->ir);
-   do_mod_to_fract(shader->ir);
-   do_div_to_mul_rcp(shader->ir);
-
-   /* Optimization passes */
    if (!state->error && !shader->ir->is_empty()) {
+      /* Lowering */
+      do_mat_op_to_vec(shader->ir);
+      do_mod_to_fract(shader->ir);
+      do_div_to_mul_rcp(shader->ir);
+
+      /* Optimization passes */
       bool progress;
       do {
         progress = false;