Mesa (master): nir: fix packing components with arrays

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Apr 15 09:29:16 UTC 2019


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

Author: Timothy Arceri <tarceri at itsqueeze.com>
Date:   Mon Apr 15 15:00:02 2019 +1000

nir: fix packing components with arrays

When gathering info for unmovable types we need to handle arrays.
While we dont support packing/moving arrays we do support packing
scalar components with these arrays.

Fixes piglit:
tests/spec/arb_enhanced_layouts/execution/component-layout/vs-fs-array-interleave-range.shader_test

Fixes: 5eb17506e159 ("nir: do not pack varying with different types")

Reviewed-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>

---

 src/compiler/nir/nir_linking_helpers.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/compiler/nir/nir_linking_helpers.c b/src/compiler/nir/nir_linking_helpers.c
index 7594728e25e..f4494c78f98 100644
--- a/src/compiler/nir/nir_linking_helpers.c
+++ b/src/compiler/nir/nir_linking_helpers.c
@@ -309,7 +309,8 @@ get_unmoveable_components_masks(struct exec_list *var_list,
             comps[location + i].interp_type =
                get_interp_type(var, type, default_to_smooth_interp);
             comps[location + i].interp_loc = get_interp_loc(var);
-            comps[location + i].is_32bit = glsl_type_is_32bit(type);
+            comps[location + i].is_32bit =
+               glsl_type_is_32bit(glsl_without_array(type));
          }
       }
    }




More information about the mesa-commit mailing list