From: Nicolai Hähnle <nicolai.haeh...@amd.com>

This whole pass is a no-op.
---
 src/compiler/glsl/lower_output_reads.cpp | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

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
@@ -89,22 +89,20 @@ output_read_remover::~output_read_remover()
 {
    _mesa_hash_table_destroy(replacements, NULL);
    ralloc_free(mem_ctx);
 }
 
 ir_visitor_status
 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;
 
    /* If we don't have an existing temporary, create one. */
    if (temp == NULL) {
       void *var_ctx = ralloc_parent(ir->var);
       temp = new(var_ctx) ir_variable(ir->var->type, ir->var->name,
                                       ir_var_temporary);
       _mesa_hash_table_insert(replacements, ir->var, temp);
@@ -166,13 +164,19 @@ output_read_remover::visit_leave(ir_function_signature 
*sig)
    if (strcmp(sig->function_name(), "main") != 0)
       return visit_continue;
 
    hash_table_call_foreach(replacements, emit_main_copy, sig);
    return visit_continue;
 }
 
 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);
 }
-- 
2.7.4

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to