diff options
-rw-r--r-- | src/compiler/glsl/link_varyings.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/compiler/glsl/link_varyings.cpp b/src/compiler/glsl/link_varyings.cpp index 1bce3e00207..1fad31087ec 100644 --- a/src/compiler/glsl/link_varyings.cpp +++ b/src/compiler/glsl/link_varyings.cpp @@ -1390,8 +1390,9 @@ varying_matches::record(ir_variable *producer_var, ir_variable *consumer_var) (producer_var->type->contains_integer() || producer_var->type->contains_double()); - if (needs_flat_qualifier || - (consumer_stage != -1 && consumer_stage != MESA_SHADER_FRAGMENT)) { + if (!disable_varying_packing && + (needs_flat_qualifier || + (consumer_stage != -1 && consumer_stage != MESA_SHADER_FRAGMENT))) { /* Since this varying is not being consumed by the fragment shader, its * interpolation type varying cannot possibly affect rendering. * Also, this variable is non-flat and is (or contains) an integer |