summaryrefslogtreecommitdiffstats
path: root/src/compiler
diff options
context:
space:
mode:
authorRob Clark <[email protected]>2018-04-15 12:02:37 -0400
committerRob Clark <[email protected]>2018-04-16 20:41:18 -0400
commit2a55344e7d2e87a31593e6f0c8432f91159564a4 (patch)
tree51ddb957ae772c187b5b80fa51d7f15efbe1b18c /src/compiler
parent60299e9abe8513b36fe7979fbf36a99e4070e8d1 (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.cpp37
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;