st/mesa: disable copy propagation for tessellation shaders
authorIlia Mirkin <imirkin@alum.mit.edu>
Tue, 22 Jul 2014 00:45:29 +0000 (20:45 -0400)
committerMarek Olšák <marek.olsak@amd.com>
Wed, 22 Jul 2015 22:59:30 +0000 (00:59 +0200)
This can't work due to shared inputs and outputs and barriers.

src/mesa/state_tracker/st_glsl_to_tgsi.cpp

index 221b675..ad319f0 100644 (file)
@@ -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();