Signed-off-by: Karol Herbst <kher...@redhat.com> --- src/compiler/glsl_types.h | 34 ++++++++++++++++++++++++++++++++++ src/compiler/nir_types.h | 30 +----------------------------- 2 files changed, 35 insertions(+), 29 deletions(-)
diff --git a/src/compiler/glsl_types.h b/src/compiler/glsl_types.h index 34d03505ae..2e63261090 100644 --- a/src/compiler/glsl_types.h +++ b/src/compiler/glsl_types.h @@ -1068,4 +1068,38 @@ glsl_align(unsigned int a, unsigned int align) return (a + align - 1) / align * align; } +static inline unsigned +glsl_base_get_byte_size(const enum glsl_base_type base_type) +{ + switch (base_type) { + case GLSL_TYPE_INT: + case GLSL_TYPE_UINT: + case GLSL_TYPE_BOOL: + case GLSL_TYPE_FLOAT: /* TODO handle mediump */ + case GLSL_TYPE_SUBROUTINE: + return 4; + + case GLSL_TYPE_FLOAT16: + case GLSL_TYPE_UINT16: + case GLSL_TYPE_INT16: + return 2; + + case GLSL_TYPE_UINT8: + case GLSL_TYPE_INT8: + return 1; + + case GLSL_TYPE_DOUBLE: + case GLSL_TYPE_INT64: + case GLSL_TYPE_UINT64: + case GLSL_TYPE_IMAGE: + case GLSL_TYPE_SAMPLER: + return 8; + + default: + unreachable("unknown base type"); + } + + return 0; +} + #endif /* GLSL_TYPES_H */ diff --git a/src/compiler/nir_types.h b/src/compiler/nir_types.h index 8687d4f133..033b3ae739 100644 --- a/src/compiler/nir_types.h +++ b/src/compiler/nir_types.h @@ -86,35 +86,7 @@ unsigned glsl_get_record_location_offset(const struct glsl_type *type, static inline unsigned glsl_get_bit_size(const struct glsl_type *type) { - switch (glsl_get_base_type(type)) { - case GLSL_TYPE_INT: - case GLSL_TYPE_UINT: - case GLSL_TYPE_BOOL: - case GLSL_TYPE_FLOAT: /* TODO handle mediump */ - case GLSL_TYPE_SUBROUTINE: - return 32; - - case GLSL_TYPE_FLOAT16: - case GLSL_TYPE_UINT16: - case GLSL_TYPE_INT16: - return 16; - - case GLSL_TYPE_UINT8: - case GLSL_TYPE_INT8: - return 8; - - case GLSL_TYPE_DOUBLE: - case GLSL_TYPE_INT64: - case GLSL_TYPE_UINT64: - case GLSL_TYPE_IMAGE: - case GLSL_TYPE_SAMPLER: - return 64; - - default: - unreachable("unknown base type"); - } - - return 0; + return glsl_base_get_byte_size(glsl_get_base_type(type)) * 8; } bool glsl_type_is_64bit(const struct glsl_type *type); -- 2.14.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev