From: Rob Clark Date: Sun, 15 Apr 2018 16:02:37 +0000 (-0400) Subject: compiler: int8/uint8 fixes X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2a55344e7d2e87a31593e6f0c8432f91159564a4;p=mesa.git compiler: int8/uint8 fixes A couple spots were missed for handling of the new INT8/UINT8 base type. Also de-duplicate get_base_type().. get_scalar_type() had nearly the same switch statement, with the exception that anything with base_type that was not scalar would return error_type. So just handle that one special case in get_scalar_type(). Signed-off-by: Rob Clark Reviewed-by: Jason Ekstrand --- diff --git a/src/compiler/glsl_types.cpp b/src/compiler/glsl_types.cpp index 9d853caf721..11947c917a2 100644 --- a/src/compiler/glsl_types.cpp +++ b/src/compiler/glsl_types.cpp @@ -344,10 +344,14 @@ const glsl_type *glsl_type::get_base_type() const return uint_type; case GLSL_TYPE_UINT16: return uint16_t_type; + case GLSL_TYPE_UINT8: + return uint8_t_type; case GLSL_TYPE_INT: return int_type; case GLSL_TYPE_INT16: return int16_t_type; + case GLSL_TYPE_INT8: + return int8_t_type; case GLSL_TYPE_FLOAT: return float_type; case GLSL_TYPE_FLOAT16: @@ -374,32 +378,11 @@ const glsl_type *glsl_type::get_scalar_type() const while (type->base_type == GLSL_TYPE_ARRAY) type = type->fields.array; - /* Handle vectors and matrices */ - switch (type->base_type) { - case GLSL_TYPE_UINT: - return uint_type; - case GLSL_TYPE_UINT16: - return uint16_t_type; - case GLSL_TYPE_INT: - return int_type; - case GLSL_TYPE_INT16: - return int16_t_type; - case GLSL_TYPE_FLOAT: - return float_type; - case GLSL_TYPE_FLOAT16: - return float16_t_type; - case GLSL_TYPE_DOUBLE: - return double_type; - case GLSL_TYPE_BOOL: - return bool_type; - case GLSL_TYPE_UINT64: - return uint64_t_type; - case GLSL_TYPE_INT64: - return int64_t_type; - default: - /* Handle everything else */ + const glsl_type *scalar_type = type->get_base_type(); + if (scalar_type == error_type) return type; - } + + return scalar_type; } @@ -1366,7 +1349,9 @@ glsl_type::uniform_locations() const case GLSL_TYPE_FLOAT16: case GLSL_TYPE_DOUBLE: case GLSL_TYPE_UINT16: + case GLSL_TYPE_UINT8: case GLSL_TYPE_INT16: + case GLSL_TYPE_INT8: case GLSL_TYPE_UINT64: case GLSL_TYPE_INT64: case GLSL_TYPE_BOOL: @@ -1400,7 +1385,9 @@ glsl_type::varying_count() const case GLSL_TYPE_DOUBLE: case GLSL_TYPE_BOOL: case GLSL_TYPE_UINT16: + case GLSL_TYPE_UINT8: case GLSL_TYPE_INT16: + case GLSL_TYPE_INT8: case GLSL_TYPE_UINT64: case GLSL_TYPE_INT64: return 1;