X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fcompiler%2Fglsl_types.h;h=7709556fe0cdc989b505ae6770f02ca8a8849f55;hb=abc8a702d0f01852f85705a87c9d624300c1efec;hp=508cf5213642eab8f9ab0088d2a453de8038dfe3;hpb=fd249c803e3ae2acb83f5e3b7152728e73228b7b;p=mesa.git diff --git a/src/compiler/glsl_types.h b/src/compiler/glsl_types.h index 508cf521364..7709556fe0c 100644 --- a/src/compiler/glsl_types.h +++ b/src/compiler/glsl_types.h @@ -22,7 +22,6 @@ * DEALINGS IN THE SOFTWARE. */ -#pragma once #ifndef GLSL_TYPES_H #define GLSL_TYPES_H @@ -54,6 +53,8 @@ enum glsl_base_type { GLSL_TYPE_INT, GLSL_TYPE_FLOAT, GLSL_TYPE_DOUBLE, + GLSL_TYPE_UINT64, + GLSL_TYPE_INT64, GLSL_TYPE_BOOL, GLSL_TYPE_SAMPLER, GLSL_TYPE_IMAGE, @@ -69,7 +70,9 @@ enum glsl_base_type { static inline bool glsl_base_type_is_64bit(enum glsl_base_type type) { - return type == GLSL_TYPE_DOUBLE; + return type == GLSL_TYPE_DOUBLE || + type == GLSL_TYPE_UINT64 || + type == GLSL_TYPE_INT64; } enum glsl_sampler_dim { @@ -225,6 +228,8 @@ struct glsl_type { static const glsl_type *ivec(unsigned components); static const glsl_type *uvec(unsigned components); static const glsl_type *bvec(unsigned components); + static const glsl_type *i64vec(unsigned components); + static const glsl_type *u64vec(unsigned components); /**@}*/ /** @@ -462,7 +467,7 @@ struct glsl_type { */ bool is_numeric() const { - return (base_type >= GLSL_TYPE_UINT) && (base_type <= GLSL_TYPE_DOUBLE); + return (base_type >= GLSL_TYPE_UINT) && (base_type <= GLSL_TYPE_INT64); } /** @@ -474,8 +479,17 @@ struct glsl_type { } /** - * Query whether or not type is an integral type, or for struct, interface - * and array types, contains an integral type. + * Query whether or not a type is a 32-bit or 64-bit integer + */ + bool is_integer_32_64() const + { + return (base_type == GLSL_TYPE_UINT) || (base_type == GLSL_TYPE_INT) || + (base_type == GLSL_TYPE_UINT64) || (base_type == GLSL_TYPE_INT64); + } + + /** + * Query whether or not type is an integral type, or for struct and array + * types, contains an integral type. */ bool contains_integer() const;