summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2010-08-05 12:24:36 -0700
committerEric Anholt <eric@anholt.net>2010-08-05 12:56:03 -0700
commitb259eb28049fc06ebc75a7714834b9ed037a3454 (patch)
tree39902c665b8ca45b37c080a127e1c934a44290f7
parent9f82806c7b5109553cf806a5652e6b6198665094 (diff)
glsl2: Don't tree-grafting out assignment to an out variable.
Fixes: glsl-deadcode-varying.
-rw-r--r--src/glsl/ir_tree_grafting.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/glsl/ir_tree_grafting.cpp b/src/glsl/ir_tree_grafting.cpp
index 38034a6197..1a742f412c 100644
--- a/src/glsl/ir_tree_grafting.cpp
+++ b/src/glsl/ir_tree_grafting.cpp
@@ -319,6 +319,10 @@ tree_grafting_basic_block(ir_instruction *bb_first,
if (!lhs_var)
continue;
+ if (lhs_var->mode == ir_var_out ||
+ lhs_var->mode == ir_var_inout)
+ continue;
+
struct variable_entry *entry = info->refs->get_variable_entry(lhs_var);
if (!entry->declaration ||