Reviewed-by: Lionel Landwerlin <lionel.g.landwer...@intel.com>
On 13/10/17 06:48, Jason Ekstrand wrote:
Most of NIR doesn't allow doing array indexing on a vector (though it does on a matrix). However, nir_lower_io handles it just fine and this behavior is needed for shared variables in Vulkan. This commit makes glsl_get_array_element do something sensible for vector types and makes nir_validate happy with them. --- src/compiler/nir_types.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/compiler/nir_types.cpp b/src/compiler/nir_types.cpp index 5583bc0..978f7d7 100644 --- a/src/compiler/nir_types.cpp +++ b/src/compiler/nir_types.cpp @@ -39,6 +39,8 @@ glsl_get_array_element(const glsl_type* type) { if (type->is_matrix()) return type->column_type(); + else if (type->is_vector()) + return type->get_scalar_type(); return type->fields.array; }
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev