summaryrefslogtreecommitdiffstats
path: root/src/mesa/state_tracker
diff options
context:
space:
mode:
authorIlia Mirkin <[email protected]>2014-07-21 20:45:29 -0400
committerMarek Olšák <[email protected]>2015-07-23 00:59:30 +0200
commit8f40428afbbfa9080964df3cd4f38f24122c4c5e (patch)
tree1c35640a0948bec6f6b9a834f25153d4ed46f6a0 /src/mesa/state_tracker
parentf4c13fad6550f42524786c70b6f13fc510abaf0b (diff)
st/mesa: disable copy propagation for tessellation shaders
This can't work due to shared inputs and outputs and barriers.
Diffstat (limited to 'src/mesa/state_tracker')
-rw-r--r--src/mesa/state_tracker/st_glsl_to_tgsi.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
index 221b6751b26..ad319f06cad 100644
--- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
+++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
@@ -5800,7 +5800,11 @@ get_mesa_program(struct gl_context *ctx,
/* Perform optimizations on the instructions in the glsl_to_tgsi_visitor. */
v->simplify_cmp();
- v->copy_propagate();
+
+ if (shader->Type != GL_TESS_CONTROL_SHADER &&
+ shader->Type != GL_TESS_EVALUATION_SHADER)
+ v->copy_propagate();
+
while (v->eliminate_dead_code());
v->merge_two_dsts();