Module: Mesa
Branch: master
Commit: 42699e12711668a142b7acf11c168cf4301c1295
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=42699e12711668a142b7acf11c168cf4301c1295

Author: Kenneth Graunke <[email protected]>
Date:   Sat Jan  7 12:55:17 2017 -0800

glsl: Make is_fixed_function_array actually check for varyings.

We can't check VARYING_SLOT_* locations until we've determined that
the variable is actually a varying.

Fixes assert failures in drivers which actually use this path,
such as radeonsi and i915.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99314
Signed-off-by: Kenneth Graunke <[email protected]>

---

 src/compiler/glsl/ir_set_program_inouts.cpp | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/compiler/glsl/ir_set_program_inouts.cpp 
b/src/compiler/glsl/ir_set_program_inouts.cpp
index 376d9c6..354b533 100644
--- a/src/compiler/glsl/ir_set_program_inouts.cpp
+++ b/src/compiler/glsl/ir_set_program_inouts.cpp
@@ -337,6 +337,10 @@ is_multiple_vertices(gl_shader_stage stage, ir_variable 
*var)
 static bool
 is_fixed_function_array(ir_variable *var)
 {
+   if (var->data.mode != ir_var_shader_in &&
+       var->data.mode != ir_var_shader_out)
+      return false;
+
    switch (var->data.location) {
    case VARYING_SLOT_TESS_LEVEL_OUTER:
    case VARYING_SLOT_TESS_LEVEL_INNER:

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to