diff options
Diffstat (limited to 'src/compiler/nir')
-rw-r--r-- | src/compiler/nir/nir.c | 6 | ||||
-rw-r--r-- | src/compiler/nir/nir.h | 9 | ||||
-rw-r--r-- | src/compiler/nir/nir_split_var_copies.c | 6 |
3 files changed, 21 insertions, 0 deletions
diff --git a/src/compiler/nir/nir.c b/src/compiler/nir/nir.c index 7380bf436a8..688f2b1ae32 100644 --- a/src/compiler/nir/nir.c +++ b/src/compiler/nir/nir.c @@ -726,10 +726,13 @@ deref_foreach_leaf_build_recur(nir_deref_var *deref, nir_deref *tail, assert(tail->child == NULL); switch (glsl_get_base_type(tail->type)) { case GLSL_TYPE_UINT: + case GLSL_TYPE_UINT16: case GLSL_TYPE_UINT64: case GLSL_TYPE_INT: + case GLSL_TYPE_INT16: case GLSL_TYPE_INT64: case GLSL_TYPE_FLOAT: + case GLSL_TYPE_FLOAT16: case GLSL_TYPE_DOUBLE: case GLSL_TYPE_BOOL: if (glsl_type_is_vector_or_scalar(tail->type)) @@ -874,7 +877,10 @@ nir_deref_get_const_initializer_load(nir_shader *shader, nir_deref_var *deref) case GLSL_TYPE_FLOAT: case GLSL_TYPE_INT: case GLSL_TYPE_UINT: + case GLSL_TYPE_FLOAT16: case GLSL_TYPE_DOUBLE: + case GLSL_TYPE_INT16: + case GLSL_TYPE_UINT16: case GLSL_TYPE_UINT64: case GLSL_TYPE_INT64: case GLSL_TYPE_BOOL: diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h index 189c17d1625..2abf2ddd843 100644 --- a/src/compiler/nir/nir.h +++ b/src/compiler/nir/nir.h @@ -719,6 +719,12 @@ nir_get_nir_type_for_glsl_base_type(enum glsl_base_type base_type) case GLSL_TYPE_INT: return nir_type_int32; break; + case GLSL_TYPE_UINT16: + return nir_type_uint16; + break; + case GLSL_TYPE_INT16: + return nir_type_int16; + break; case GLSL_TYPE_UINT64: return nir_type_uint64; break; @@ -728,6 +734,9 @@ nir_get_nir_type_for_glsl_base_type(enum glsl_base_type base_type) case GLSL_TYPE_FLOAT: return nir_type_float32; break; + case GLSL_TYPE_FLOAT16: + return nir_type_float16; + break; case GLSL_TYPE_DOUBLE: return nir_type_float64; break; diff --git a/src/compiler/nir/nir_split_var_copies.c b/src/compiler/nir/nir_split_var_copies.c index 15a185ec8d8..bc3ceedbdb8 100644 --- a/src/compiler/nir/nir_split_var_copies.c +++ b/src/compiler/nir/nir_split_var_copies.c @@ -147,10 +147,13 @@ split_var_copy_instr(nir_intrinsic_instr *old_copy, break; case GLSL_TYPE_UINT: + case GLSL_TYPE_UINT16: case GLSL_TYPE_UINT64: case GLSL_TYPE_INT: + case GLSL_TYPE_INT16: case GLSL_TYPE_INT64: case GLSL_TYPE_FLOAT: + case GLSL_TYPE_FLOAT16: case GLSL_TYPE_DOUBLE: case GLSL_TYPE_BOOL: if (glsl_type_is_matrix(src_tail->type)) { @@ -229,6 +232,7 @@ split_var_copies_block(nir_block *block, struct split_var_copies_state *state) ralloc_steal(state->dead_ctx, instr); break; case GLSL_TYPE_FLOAT: + case GLSL_TYPE_FLOAT16: case GLSL_TYPE_DOUBLE: if (glsl_type_is_matrix(src_tail->type)) { split_var_copy_instr(intrinsic, dest_head, src_head, @@ -239,6 +243,8 @@ split_var_copies_block(nir_block *block, struct split_var_copies_state *state) break; case GLSL_TYPE_INT: case GLSL_TYPE_UINT: + case GLSL_TYPE_INT16: + case GLSL_TYPE_UINT16: case GLSL_TYPE_INT64: case GLSL_TYPE_UINT64: case GLSL_TYPE_BOOL: |