Module: Mesa Branch: master Commit: 3680864c0b2ed4019b952c067205ca16b652cd93 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3680864c0b2ed4019b952c067205ca16b652cd93
Author: Paul Berry <[email protected]> Date: Fri Jan 11 13:34:40 2013 -0800 glsl: Disable structure splitting for shader ins/outs. Previously, it didn't matter whether structure splitting tried to split shader ins/outs, because structs were prohibited from being used for shader ins/outs. However, GLSL 3.00 ES supports varying structs. In order for varying structs to work, we need to make sure that structure splitting doesn't get applied to them, because if it does, then the linker won't be able to match up varyings properly. Reviewed-by: Jordan Justen <[email protected]> Reviewed-by: Eric Anholt <[email protected]> --- src/glsl/opt_structure_splitting.cpp | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/src/glsl/opt_structure_splitting.cpp b/src/glsl/opt_structure_splitting.cpp index 9b3f048..806c079 100644 --- a/src/glsl/opt_structure_splitting.cpp +++ b/src/glsl/opt_structure_splitting.cpp @@ -104,7 +104,8 @@ ir_structure_reference_visitor::get_variable_entry(ir_variable *var) { assert(var); - if (!var->type->is_record() || var->mode == ir_var_uniform) + if (!var->type->is_record() || var->mode == ir_var_uniform + || var->mode == ir_var_shader_in || var->mode == ir_var_shader_out) return NULL; foreach_iter(exec_list_iterator, iter, this->variable_list) { _______________________________________________ mesa-commit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-commit
