From 3a571fcc43e70731417f0b81cbce4b0a0c1be71d Mon Sep 17 00:00:00 2001 From: =?utf8?q?Samuel=20Iglesias=20Gons=C3=A1lvez?= Date: Wed, 7 Dec 2016 08:34:02 +0100 Subject: [PATCH] nir: add nir_get_nir_type_for_glsl_type() MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit v2 (Jason): - Refactor nir_get_nir_type_for_glsl_type() to avoid using unneeded helpers (Jason) v3: - Use return directly (Jason) Signed-off-by: Samuel Iglesias Gonsálvez Reviewed-by: Jason Ekstrand --- src/compiler/nir/nir.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h index d17924c2aac..654a26728ac 100644 --- a/src/compiler/nir/nir.h +++ b/src/compiler/nir/nir.h @@ -675,6 +675,30 @@ nir_alu_type_get_base_type(nir_alu_type type) return type & NIR_ALU_TYPE_BASE_TYPE_MASK; } +static inline nir_alu_type +nir_get_nir_type_for_glsl_type(const struct glsl_type *type) +{ + switch (glsl_get_base_type(type)) { + case GLSL_TYPE_BOOL: + return nir_type_bool32; + break; + case GLSL_TYPE_UINT: + return nir_type_uint32; + break; + case GLSL_TYPE_INT: + return nir_type_int32; + break; + case GLSL_TYPE_FLOAT: + return nir_type_float32; + break; + case GLSL_TYPE_DOUBLE: + return nir_type_float64; + break; + default: + unreachable("unknown type"); + } +} + typedef enum { NIR_OP_IS_COMMUTATIVE = (1 << 0), NIR_OP_IS_ASSOCIATIVE = (1 << 1), -- 2.30.2