[Mesa-dev] [PATCH 5/8] nir: add 16bit type information to glsl types

Bas Nieuwenhuizen bas at basnieuwenhuizen.nl
Mon Jul 23 16:42:36 UTC 2018


On Thu, Jul 19, 2018 at 2:48 PM, Daniel Schürmann
<daniel.schuermann at campus.tu-berlin.de> wrote:
> Signed-off-by: Daniel Schürmann <daniel.schuermann at campus.tu-berlin.de>
> ---
>  src/compiler/glsl_types.h  | 15 +++++++++++++++
>  src/compiler/nir_types.cpp | 12 ++++++++++++
>  src/compiler/nir_types.h   |  1 +
>  3 files changed, 28 insertions(+)
>
> diff --git a/src/compiler/glsl_types.h b/src/compiler/glsl_types.h
> index efc6324865..8cc8177f2d 100644
> --- a/src/compiler/glsl_types.h
> +++ b/src/compiler/glsl_types.h
> @@ -87,6 +87,13 @@ enum glsl_base_type {
>     GLSL_TYPE_ERROR
>  };
>
> +static inline bool glsl_base_type_is_16bit(enum glsl_base_type type)
> +{
> +   return type == GLSL_TYPE_FLOAT16 ||
> +          type == GLSL_TYPE_UINT16 ||
> +          type == GLSL_TYPE_INT16;
> +}
> +
>  static inline bool glsl_base_type_is_64bit(enum glsl_base_type type)
>  {
>     return type == GLSL_TYPE_DOUBLE ||
> @@ -551,6 +558,14 @@ public:
>        return glsl_base_type_is_64bit(base_type);
>     }
>
> +   /**
> +    * Query whether or not a type is 64-bit

Update comment?

> +    */
> +   bool is_16bit() const
> +   {
> +      return glsl_base_type_is_16bit(base_type);
> +   }
> +
>     /**
>      * Query whether or not a type is a non-array boolean type
>      */
> diff --git a/src/compiler/nir_types.cpp b/src/compiler/nir_types.cpp
> index 6f1182b742..3a3864414f 100644
> --- a/src/compiler/nir_types.cpp
> +++ b/src/compiler/nir_types.cpp
> @@ -164,6 +164,12 @@ glsl_get_record_location_offset(const struct glsl_type *type,
>     return type->record_location_offset(length);
>  }
>
> +bool
> +glsl_type_is_16bit(const glsl_type *type)
> +{
> +   return type->is_16bit();
> +}
> +
>  bool
>  glsl_type_is_64bit(const glsl_type *type)
>  {
> @@ -473,6 +479,12 @@ glsl_channel_type(const glsl_type *t)
>        return glsl_uint64_t_type();
>     case GLSL_TYPE_INT64:
>        return glsl_int64_t_type();
> +   case GLSL_TYPE_FLOAT16:
> +      return glsl_float16_t_type();
> +   case GLSL_TYPE_UINT16:
> +      return glsl_uint16_t_type();
> +   case GLSL_TYPE_INT16:
> +      return glsl_int16_t_type();
>     default:
>        unreachable("Unhandled base type glsl_channel_type()");
>     }
> diff --git a/src/compiler/nir_types.h b/src/compiler/nir_types.h
> index c128250c7d..817b7a9b34 100644
> --- a/src/compiler/nir_types.h
> +++ b/src/compiler/nir_types.h
> @@ -121,6 +121,7 @@ glsl_get_bit_size(const struct glsl_type *type)
>     return 0;
>  }
>
> +bool glsl_type_is_16bit(const struct glsl_type *type);
>  bool glsl_type_is_64bit(const struct glsl_type *type);
>  bool glsl_type_is_void(const struct glsl_type *type);
>  bool glsl_type_is_error(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