Pointers with no storage type are converted to inout variables but SSA
values and pointers with a storage type (which turns into a uint or
uvec2) are just input variables.
if (func_type->params[i]->base_type == vtn_base_type_pointer &&
func_type->params[i]->type == NULL) {
func->params[i].type = func_type->params[i]->deref->type;
+ func->params[i].param_type = nir_parameter_inout;
} else {
func->params[i].type = func_type->params[i]->type;
+ func->params[i].param_type = nir_parameter_in;
}
-
- /* TODO: We could do something smarter here. */
- func->params[i].param_type = nir_parameter_inout;
}
func->return_type = func_type->return_type->type;