From: Nicolai Hähnle Date: Thu, 17 Nov 2016 20:52:32 +0000 (+0100) Subject: glsl/lower_output_reads: bail early in tessellation control shaders X-Git-Tag: upstream/17.1.0~4545 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a3b98edf6f29aecc33d15a3df0d81a340ea3ebe5;p=platform%2Fupstream%2Fmesa.git glsl/lower_output_reads: bail early in tessellation control shaders This whole pass is a no-op. Acked-by: Edward O'Callaghan Reviewed-by: Ilia Mirkin Reviewed-by: Marek Olšák --- diff --git a/src/compiler/glsl/lower_output_reads.cpp b/src/compiler/glsl/lower_output_reads.cpp index 8a375ac..b0045f0 100644 --- a/src/compiler/glsl/lower_output_reads.cpp +++ b/src/compiler/glsl/lower_output_reads.cpp @@ -96,8 +96,6 @@ output_read_remover::visit(ir_dereference_variable *ir) { if (ir->var->data.mode != ir_var_shader_out) return visit_continue; - if (stage == MESA_SHADER_TESS_CTRL) - return visit_continue; hash_entry *entry = _mesa_hash_table_search(replacements, ir->var); ir_variable *temp = entry ? (ir_variable *) entry->data : NULL; @@ -173,6 +171,12 @@ output_read_remover::visit_leave(ir_function_signature *sig) void lower_output_reads(unsigned stage, exec_list *instructions) { + /* Due to the possible interactions between multiple tessellation control + * shader invocations, we leave output variables as-is. + */ + if (stage == MESA_SHADER_TESS_CTRL) + return; + output_read_remover v(stage); visit_list_elements(&v, instructions); }