glsl2: Do algebraic optimizations after linking as well.
authorEric Anholt <eric@anholt.net>
Sat, 31 Jul 2010 22:47:35 +0000 (15:47 -0700)
committerEric Anholt <eric@anholt.net>
Sat, 31 Jul 2010 22:52:24 +0000 (15:52 -0700)
Linking brings in inlining of builtins, so we weren't catching the
(rcp(/sqrt(x)) -> rsq(x)) without it.

src/glsl/linker.cpp

index 9b47e4788fcde7934ed096e43c88be11cb3f6eec..9d53197fddae878e0654e7c3fb3a111a67174466 100644 (file)
@@ -1289,6 +1289,7 @@ link_shaders(struct gl_shader_program *prog)
         progress = do_tree_grafting(ir) || progress;
         progress = do_constant_variable_unlinked(ir) || progress;
         progress = do_constant_folding(ir) || progress;
+        progress = do_algebraic(ir) || progress;
         progress = do_if_return(ir) || progress;
 #if 0
         if (ctx->Shader.EmitNoIfs)