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

Author: Qiang Yu <yuq...@gmail.com>
Date:   Sun Apr 21 09:54:46 2019 +0800

lima/gpir: add helper function for emit load node

Reviewed-by: Vasily Khoruzhick <anars...@gmail.com>
Reviewed-by: Erico Nunes <nunes.er...@gmail.com>
Signed-off-by: Qiang Yu <yuq...@gmail.com>

---

 src/gallium/drivers/lima/ir/gp/nir.c | 39 ++++++++++++++++++------------------
 1 file changed, 19 insertions(+), 20 deletions(-)

diff --git a/src/gallium/drivers/lima/ir/gp/nir.c 
b/src/gallium/drivers/lima/ir/gp/nir.c
index b12d93ff9e4..f38e2309619 100644
--- a/src/gallium/drivers/lima/ir/gp/nir.c
+++ b/src/gallium/drivers/lima/ir/gp/nir.c
@@ -153,37 +153,36 @@ static bool gpir_emit_alu(gpir_block *block, nir_instr 
*ni)
    return true;
 }
 
+static gpir_node *gpir_create_load(gpir_block *block, nir_dest *dest,
+                                   int op, int index, int component)
+{
+   gpir_load_node *load = gpir_node_create_dest(block, op, dest);
+   if (unlikely(!load))
+      return NULL;
+
+   load->index = index;
+   load->component = component;
+   return &load->node;
+}
+
 static bool gpir_emit_intrinsic(gpir_block *block, nir_instr *ni)
 {
    nir_intrinsic_instr *instr = nir_instr_as_intrinsic(ni);
 
    switch (instr->intrinsic) {
    case nir_intrinsic_load_input:
-   {
-      gpir_load_node *load =
-         gpir_node_create_dest(block, gpir_op_load_attribute, &instr->dest);
-      if (unlikely(!load))
-         return false;
-
-      load->index = nir_intrinsic_base(instr);
-      load->component = nir_intrinsic_component(instr);
-
-      return true;
-   }
+      return gpir_create_load(block, &instr->dest,
+                              gpir_op_load_attribute,
+                              nir_intrinsic_base(instr),
+                              nir_intrinsic_component(instr)) != NULL;
    case nir_intrinsic_load_uniform:
    {
-      gpir_load_node *load =
-         gpir_node_create_dest(block, gpir_op_load_uniform, &instr->dest);
-      if (unlikely(!load))
-         return false;
-
       int offset = nir_intrinsic_base(instr);
       offset += (int)nir_src_as_float(instr->src[0]);
 
-      load->index = offset / 4;
-      load->component = offset % 4;
-
-      return true;
+      return gpir_create_load(block, &instr->dest,
+                              gpir_op_load_uniform,
+                              offset / 4, offset % 4) != NULL;
    }
    case nir_intrinsic_store_output:
    {

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

Reply via email to