diff options
author | Rob Clark <[email protected]> | 2018-04-15 12:02:37 -0400 |
---|---|---|
committer | Rob Clark <[email protected]> | 2018-04-16 20:41:18 -0400 |
commit | 2a55344e7d2e87a31593e6f0c8432f91159564a4 (patch) | |
tree | 51ddb957ae772c187b5b80fa51d7f15efbe1b18c /src/compiler | |
parent | 60299e9abe8513b36fe7979fbf36a99e4070e8d1 (diff) |
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 <[email protected]>
Reviewed-by: Jason Ekstrand <[email protected]>
Diffstat (limited to 'src/compiler')
-rw-r--r-- | src/compiler/glsl_types.cpp | 37 |
1 files changed, 12 insertions, 25 deletions
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; |