summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/compiler/nir_types.cpp18
-rw-r--r--src/compiler/nir_types.h3
2 files changed, 21 insertions, 0 deletions
diff --git a/src/compiler/nir_types.cpp b/src/compiler/nir_types.cpp
index 89f1be57079..2942810f43b 100644
--- a/src/compiler/nir_types.cpp
+++ b/src/compiler/nir_types.cpp
@@ -158,6 +158,12 @@ glsl_type_is_void(const glsl_type *type)
}
bool
+glsl_type_is_error(const glsl_type *type)
+{
+ return type->is_error();
+}
+
+bool
glsl_type_is_vector(const struct glsl_type *type)
{
return type->is_vector();
@@ -182,6 +188,18 @@ glsl_type_is_matrix(const struct glsl_type *type)
}
bool
+glsl_type_is_array(const struct glsl_type *type)
+{
+ return type->is_array();
+}
+
+bool
+glsl_type_is_struct(const struct glsl_type *type)
+{
+ return type->is_record() || type->is_interface();
+}
+
+bool
glsl_type_is_sampler(const struct glsl_type *type)
{
return type->is_sampler();
diff --git a/src/compiler/nir_types.h b/src/compiler/nir_types.h
index e16dc4be8f6..48927da33c6 100644
--- a/src/compiler/nir_types.h
+++ b/src/compiler/nir_types.h
@@ -78,10 +78,13 @@ unsigned glsl_get_record_location_offset(const struct glsl_type *type,
unsigned length);
bool glsl_type_is_void(const struct glsl_type *type);
+bool glsl_type_is_error(const struct glsl_type *type);
bool glsl_type_is_vector(const struct glsl_type *type);
bool glsl_type_is_scalar(const struct glsl_type *type);
bool glsl_type_is_vector_or_scalar(const struct glsl_type *type);
bool glsl_type_is_matrix(const struct glsl_type *type);
+bool glsl_type_is_array(const struct glsl_type *type);
+bool glsl_type_is_struct(const struct glsl_type *type);
bool glsl_type_is_sampler(const struct glsl_type *type);
bool glsl_type_is_image(const struct glsl_type *type);
bool glsl_sampler_type_is_shadow(const struct glsl_type *type);