diff options
author | Caio Marcelo de Oliveira Filho <[email protected]> | 2019-05-31 16:15:02 -0700 |
---|---|---|
committer | Caio Marcelo de Oliveira Filho <[email protected]> | 2019-05-31 16:27:03 -0700 |
commit | 75590604a96e266c9b466db3250994333ce4dcc8 (patch) | |
tree | 8cff7e5e6a1aadc500b05e3a9081eab89ed0d813 /src | |
parent | 27497c5c0221ed86337fc5a89080f123dcd8fd52 (diff) |
nir: Return nir_type_invalid for non-numeric base types
Now that the type gathering function look at instructions that might
have other types, return invalid type instead of crashing. That
invalid will be properly ignored later.
Fixes: c12750527b7 "nir: add type information to load uniform/input and store output intrinsics"
Reviewed-by: Jason Ekstrand <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/nir/nir.h | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h index ee60f2410a8..a1bd9b954cf 100644 --- a/src/compiler/nir/nir.h +++ b/src/compiler/nir/nir.h @@ -848,9 +848,21 @@ nir_get_nir_type_for_glsl_base_type(enum glsl_base_type base_type) case GLSL_TYPE_DOUBLE: return nir_type_float64; break; - default: - unreachable("unknown type"); + + case GLSL_TYPE_SAMPLER: + case GLSL_TYPE_IMAGE: + case GLSL_TYPE_ATOMIC_UINT: + case GLSL_TYPE_STRUCT: + case GLSL_TYPE_INTERFACE: + case GLSL_TYPE_ARRAY: + case GLSL_TYPE_VOID: + case GLSL_TYPE_SUBROUTINE: + case GLSL_TYPE_FUNCTION: + case GLSL_TYPE_ERROR: + return nir_type_invalid; } + + unreachable("unknown type"); } static inline nir_alu_type |