[Mesa-dev] [PATCH] glsl/linker: Fix out variables linking during single stage
Vadym Shovkoplias
vadim.shovkoplias at gmail.com
Wed Oct 24 10:28:23 UTC 2018
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.shovkoplias at 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
More information about the mesa-dev
mailing list