diff --git a/src/compiler/glsl_types.h b/src/compiler/glsl_types.h index 8058425e0d0..d3ca3c86d5e 100644 --- a/src/compiler/glsl_types.h +++ b/src/compiler/glsl_types.h @@ -218,6 +218,27 @@ glsl_unsigned_base_type_of(enum glsl_base_type type) } } +static inline enum glsl_base_type +glsl_signed_base_type_of(enum glsl_base_type type) +{ + switch (type) { + case GLSL_TYPE_UINT: + return GLSL_TYPE_INT; + case GLSL_TYPE_UINT8: + return GLSL_TYPE_INT8; + case GLSL_TYPE_UINT16: + return GLSL_TYPE_INT16; + case GLSL_TYPE_UINT64: + return GLSL_TYPE_INT64; + default: + assert(type == GLSL_TYPE_INT || + type == GLSL_TYPE_INT8 || + type == GLSL_TYPE_INT16 || + type == GLSL_TYPE_INT64); + return type; + } +} + enum glsl_sampler_dim { GLSL_SAMPLER_DIM_1D = 0, GLSL_SAMPLER_DIM_2D,