nir: Create function parameters in function_impl_create
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
This commit is contained in:
@@ -300,6 +300,26 @@ nir_function_impl_create(nir_function *function)
|
||||
function->impl = impl;
|
||||
impl->function = function;
|
||||
|
||||
impl->num_params = function->num_params;
|
||||
impl->params = ralloc_array(function->shader,
|
||||
nir_variable *, impl->num_params);
|
||||
|
||||
for (unsigned i = 0; i < impl->num_params; i++) {
|
||||
impl->params[i] = rzalloc(function->shader, nir_variable);
|
||||
impl->params[i]->type = function->params[i].type;
|
||||
impl->params[i]->data.mode = nir_var_param;
|
||||
impl->params[i]->data.location = i;
|
||||
}
|
||||
|
||||
if (!glsl_type_is_void(function->return_type)) {
|
||||
impl->return_var = rzalloc(function->shader, nir_variable);
|
||||
impl->return_var->type = function->return_type;
|
||||
impl->return_var->data.mode = nir_var_param;
|
||||
impl->return_var->data.location = -1;
|
||||
} else {
|
||||
impl->return_var = NULL;
|
||||
}
|
||||
|
||||
return impl;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user