From: Marek Olšák Date: Tue, 26 Sep 2017 01:32:15 +0000 (+0200) Subject: glsl_to_tgsi: enable copy propagation for tessellation shaders X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=bd1837471a99f8b3503633531ef78c3ea6bf2c85;p=mesa.git glsl_to_tgsi: enable copy propagation for tessellation shaders just don't propagate output reads Reviewed-by: Nicolai Hähnle --- diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp index 50a71e461f6..28899878bd0 100644 --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp @@ -4947,6 +4947,8 @@ glsl_to_tgsi_visitor::copy_propagate(void) !inst->dst[0].reladdr2 && !inst->saturate && inst->src[0].file != PROGRAM_ARRAY && + (inst->src[0].file != PROGRAM_OUTPUT || + this->shader->Stage != MESA_SHADER_TESS_CTRL) && !inst->src[0].reladdr && !inst->src[0].reladdr2 && !inst->src[0].negate && @@ -6602,10 +6604,7 @@ get_mesa_program_tgsi(struct gl_context *ctx, /* Perform optimizations on the instructions in the glsl_to_tgsi_visitor. */ v->simplify_cmp(); - - if (shader->Stage != MESA_SHADER_TESS_CTRL && - shader->Stage != MESA_SHADER_TESS_EVAL) - v->copy_propagate(); + v->copy_propagate(); while (v->eliminate_dead_code());