ir_to_mesa: Don't forget to run the Mesa IR optimization passes.
authorEric Anholt <eric@anholt.net>
Fri, 2 Jul 2010 18:37:39 +0000 (11:37 -0700)
committerEric Anholt <eric@anholt.net>
Fri, 2 Jul 2010 18:38:02 +0000 (11:38 -0700)
With how we generate assignments, the trivial copy propagation in it
is really important, and some drivers will really want the register
allocation, too.

src/mesa/shader/ir_to_mesa.cpp

index d5664e7b91e3d14858357e3993fc82956be49f44..11fb7b9f16af1c747436c9fe58c490896643abc1 100644 (file)
@@ -44,6 +44,7 @@
 extern "C" {
 #include "main/mtypes.h"
 #include "shader/prog_instruction.h"
+#include "shader/prog_optimize.h"
 #include "shader/prog_print.h"
 #include "shader/program.h"
 #include "shader/prog_uniform.h"
@@ -1675,6 +1676,10 @@ get_mesa_program(GLcontext *ctx, void *mem_ctx, struct gl_shader *shader)
 
    _mesa_reference_program(ctx, &shader->Program, prog);
 
+   if ((ctx->Shader.Flags & GLSL_NO_OPT) == 0) {
+      _mesa_optimize_program(ctx, prog);
+   }
+
    return prog;
 }