Module: Mesa
Branch: master
Commit: 7d3ebd128602e9bd1f5b0b5b837016ee5fd932c4
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=7d3ebd128602e9bd1f5b0b5b837016ee5fd932c4

Author: Jason Ekstrand <ja...@jlekstrand.net>
Date:   Thu Dec  7 23:42:15 2017 -0800

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 182251358c..9f3f55f07d 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;
 

_______________________________________________
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to