https://bugs.freedesktop.org/show_bug.cgi?id=79783

--- Comment #7 from gregory.hain...@gmail.com ---
After further investigation, the issue comes from the deadcode optimization of
the input (in the IR tree).

Just disabling the optimization fixes my basic testcase (see a quick patch
below). It remains 2 open questions

1/ I think the support of location for Interface Block was added in
ARB_enhanced_layouts. If I'm correct, it isn't legal to partially optimize an
Interface Block. But I'm not sure.

2/ As far as I understand, the separate state isn't known at the compilation
(only the link phase). So we potentially lose the varying optimization even for
standard program (potentially it is done at link time).


diff --git a/src/glsl/opt_dead_code.cpp b/src/glsl/opt_dead_code.cpp
index f45bf5d..ad0403c 100644
--- a/src/glsl/opt_dead_code.cpp
+++ b/src/glsl/opt_dead_code.cpp
@@ -125,6 +125,10 @@ do_dead_code(exec_list *instructions, bool
uniform_locations_assigned)
             }
          }

+         if (entry->var->data.mode == ir_var_shader_in) {
+            continue;
+         }
+
         entry->var->remove();
         progress = true;

-- 
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to