Mesa (master): glsl/linker: Fix out variables linking during single stage
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Mon Oct 29 23:28:01 UTC 2018
Module: Mesa
Branch: master
Commit: 7d66eddbbdec98df21dc9d8286f8e047d575b52d
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7d66eddbbdec98df21dc9d8286f8e047d575b52d
Author: Vadym Shovkoplias <vadim.shovkoplias at gmail.com>
Date: Wed Oct 24 13:28:23 2018 +0300
glsl/linker: Fix out variables linking during single stage
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")
Signed-off-by: Vadym Shovkoplias <vadym.shovkoplias at globallogic.com>
Reviewed-by: Timothy Arceri <tarceri at itsqueeze.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105731
---
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);
}
More information about the mesa-commit
mailing list