Here's v2 of the series I sent out yesterday. Nothing changed in what we're trying to do, but I figured out the shader-db regression.
I used ir_type_variable instead of ir_type_dereference_variable when trying to make opt_dead_code_local not stomp on my vector array deref lvalue. As a result, the pass now failed to eliminate some cases of dead code. This v2 series, now has no shader-db impact and no jenkins regressions. Kristian Høgsberg Kristensen (3): glsl: Drop exec_list argument to lower_ubo_reference glsl: Lower UBO and SSBO access in glsl linker glsl: Use array deref for access to vector components src/glsl/Makefile.sources | 1 + src/glsl/ast_array_index.cpp | 5 +- src/glsl/ast_function.cpp | 24 ++----- src/glsl/ast_to_hir.cpp | 43 ------------ src/glsl/ir_optimization.h | 3 +- src/glsl/ir_validate.cpp | 7 +- src/glsl/linker.cpp | 10 +++ src/glsl/lower_ubo_reference.cpp | 18 ++++- src/glsl/lower_vector_derefs.cpp | 104 +++++++++++++++++++++++++++++ src/glsl/opt_dead_code_local.cpp | 5 ++ src/mesa/drivers/dri/i965/brw_link.cpp | 2 - src/mesa/drivers/dri/i965/brw_shader.cpp | 2 + src/mesa/main/mtypes.h | 2 + src/mesa/state_tracker/st_extensions.c | 1 + src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 1 - 15 files changed, 154 insertions(+), 74 deletions(-) create mode 100644 src/glsl/lower_vector_derefs.cpp -- 2.6.2 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev