Since out variables are copied from shader objects instruction streams to linked shader instruction steam it should be cloned at first to keep source instruction steam unaltered.
Fixes: 966a797e433 glsl/linker: Link all out vars from a shader objects on a single stage Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105731 Signed-off-by: Vadym Shovkoplias <vadym.shovkopl...@globallogic.com> --- src/compiler/glsl/linker.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/compiler/glsl/linker.cpp b/src/compiler/glsl/linker.cpp index 7db34ebf95..8b1b03322a 100644 --- a/src/compiler/glsl/linker.cpp +++ b/src/compiler/glsl/linker.cpp @@ -2269,10 +2269,11 @@ link_output_variables(struct gl_linked_shader *linked_shader, if (ir->ir_type != ir_type_variable) continue; - ir_variable *const var = (ir_variable *) ir; + ir_variable *var = (ir_variable *) ir; if (var->data.mode == ir_var_shader_out && !symbols->get_variable(var->name)) { + var = var->clone(linked_shader, NULL); symbols->add_variable(var); linked_shader->ir->push_head(var); } -- 2.18.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev