[Mesa-dev] [PATCH 05/12] nir/types: Add array_or_matrix helpers

Thomas Helland thomashelland90 at gmail.com
Thu Jul 26 17:01:32 UTC 2018


This patch is:

Reviewed-by: Thomas Helland<thomashelland90 at gmail.com>

2018-07-26 18:00 GMT+02:00 Jason Ekstrand <jason at jlekstrand.net>:
> ---
>  src/compiler/nir_types.cpp | 15 +++++++++++++++
>  src/compiler/nir_types.h   |  2 ++
>  2 files changed, 17 insertions(+)
>
> diff --git a/src/compiler/nir_types.cpp b/src/compiler/nir_types.cpp
> index 3a3864414f3..c6f30368c95 100644
> --- a/src/compiler/nir_types.cpp
> +++ b/src/compiler/nir_types.cpp
> @@ -50,6 +50,15 @@ glsl_without_array(const glsl_type *type)
>     return type->without_array();
>  }
>
> +const glsl_type *
> +glsl_without_array_or_matrix(const glsl_type *type)
> +{
> +   type = type->without_array();
> +   if (type->is_matrix())
> +      type = type->column_type();
> +   return type;
> +}
> +
>  const glsl_type *
>  glsl_get_array_instance(const glsl_type *type,
>                          unsigned array_size)
> @@ -224,6 +233,12 @@ glsl_type_is_array_of_arrays(const struct glsl_type *type)
>     return type->is_array_of_arrays();
>  }
>
> +bool
> +glsl_type_is_array_or_matrix(const struct glsl_type *type)
> +{
> +   return type->is_array() || type->is_matrix();
> +}
> +
>  bool
>  glsl_type_is_struct(const struct glsl_type *type)
>  {
> diff --git a/src/compiler/nir_types.h b/src/compiler/nir_types.h
> index 817b7a9b345..d29edd1d6c5 100644
> --- a/src/compiler/nir_types.h
> +++ b/src/compiler/nir_types.h
> @@ -48,6 +48,7 @@ const struct glsl_type *glsl_get_struct_field(const struct glsl_type *type,
>
>  const struct glsl_type *glsl_get_array_element(const struct glsl_type *type);
>  const struct glsl_type *glsl_without_array(const struct glsl_type *type);
> +const struct glsl_type *glsl_without_array_or_matrix(const struct glsl_type *type);
>  const struct glsl_type *glsl_get_array_instance(const struct glsl_type *type,
>                                                  unsigned array_size);
>
> @@ -131,6 +132,7 @@ 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_array_of_arrays(const struct glsl_type *type);
> +bool glsl_type_is_array_or_matrix(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);
> --
> 2.17.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list