Mesa (master): glsl: Don't do structure splitting until link time.

Eric Anholt anholt at kemper.freedesktop.org
Fri Sep 9 03:21:04 UTC 2011


Module: Mesa
Branch: master
Commit: 60df737ad57c20701b66d7cd3f63d1dc75745986
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=60df737ad57c20701b66d7cd3f63d1dc75745986

Author: Eric Anholt <eric at anholt.net>
Date:   Wed Sep  7 12:04:57 2011 -0700

glsl: Don't do structure splitting until link time.

We were splitting on each side of an unlinked program, and the two
sides lost track of which variables they referenced, resulting in
assertion failure during validation.  Fixes piglit
link-struct-uniform-usage.

Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

---

 src/glsl/glsl_parser_extras.cpp |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/glsl/glsl_parser_extras.cpp b/src/glsl/glsl_parser_extras.cpp
index 8f740e6..8faddc5 100644
--- a/src/glsl/glsl_parser_extras.cpp
+++ b/src/glsl/glsl_parser_extras.cpp
@@ -891,8 +891,8 @@ do_common_optimization(exec_list *ir, bool linked, unsigned max_unroll_iteration
    if (linked) {
       progress = do_function_inlining(ir) || progress;
       progress = do_dead_functions(ir) || progress;
+      progress = do_structure_splitting(ir) || progress;
    }
-   progress = do_structure_splitting(ir) || progress;
    progress = do_if_simplification(ir) || progress;
    progress = do_discard_simplification(ir) || progress;
    progress = do_copy_propagation(ir) || progress;




More information about the mesa-commit mailing list