From 7d3ebd128602e9bd1f5b0b5b837016ee5fd932c4 Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Thu, 7 Dec 2017 23:42:15 -0800 Subject: [PATCH] spirv/cfg: Refactor the function parameter loop a bit --- src/compiler/spirv/vtn_cfg.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/compiler/spirv/vtn_cfg.c b/src/compiler/spirv/vtn_cfg.c index 1822513..9f3f55f 100644 --- a/src/compiler/spirv/vtn_cfg.c +++ b/src/compiler/spirv/vtn_cfg.c @@ -51,16 +51,20 @@ vtn_cfg_handle_prepass_instruction(struct vtn_builder *b, SpvOp opcode, func->num_params = func_type->length; func->params = ralloc_array(b->shader, nir_parameter, func->num_params); - for (unsigned i = 0; i < func->num_params; i++) { + unsigned np = 0; + for (unsigned i = 0; i < func_type->length; i++) { 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; + func->params[np].type = func_type->params[i]->deref->type; + func->params[np].param_type = nir_parameter_inout; + np++; } else { - func->params[i].type = func_type->params[i]->type; - func->params[i].param_type = nir_parameter_in; + func->params[np].type = func_type->params[i]->type; + func->params[np].param_type = nir_parameter_in; + np++; } } + assert(np == func->num_params); func->return_type = func_type->return_type->type; -- 2.7.4