Signed-off-by: Karol Herbst <kher...@redhat.com>
---
 src/gallium/drivers/nouveau/codegen/nv50_ir_from_nir.cpp | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_nir.cpp 
b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_nir.cpp
index 0c19cb953d..08490a39e9 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_nir.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_nir.cpp
@@ -448,6 +448,10 @@ Converter::getSubOp(nir_intrinsic_op op)
    CASE_OP_INTR_ATOM(and, AND);
    CASE_OP_INTR_ATOM(comp_swap, CAS);
    CASE_OP_INTR_ATOM(exchange, EXCH);
+   case nir_intrinsic_memory_barrier:
+      return NV50_IR_SUBOP_MEMBAR(M, GL);
+   case nir_intrinsic_memory_barrier_shared:
+      return NV50_IR_SUBOP_MEMBAR(M, CTA);
    CASE_OP_INTR_ATOM(or, OR);
    case nir_intrinsic_image_atomic_max:
    CASE_OP_INTR_ATOM_S(imax, MAX);
@@ -2035,6 +2039,13 @@ Converter::visit(nir_intrinsic_instr *insn)
       bar->subOp = NV50_IR_SUBOP_BAR_SYNC;
       break;
    }
+   case nir_intrinsic_memory_barrier:
+   case nir_intrinsic_memory_barrier_shared: {
+      Instruction *bar = mkOp(OP_MEMBAR, TYPE_NONE, NULL);
+      bar->fixed = 1;
+      bar->subOp = getSubOp(op);
+      break;
+   }
    default:
       ERROR("unknown nir_intrinsic_op %s\n", nir_intrinsic_infos[op].name);
       return false;
-- 
2.14.3

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

Reply via email to