[Mesa-dev] [PATCH v3 48/48] compiler/nir_types: Handle vectors in glsl_get_array_element
Jason Ekstrand
jason at jlekstrand.net
Wed Oct 25 23:26:19 UTC 2017
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.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
---
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 b1b17eb..c66cfff 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;
}
--
2.5.0.400.gff86faf
More information about the mesa-dev
mailing list