Mesa (master): nv50/ir/nir: fix global_atomic_comp_swap

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Aug 19 18:33:21 UTC 2020


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

Author: Karol Herbst <kherbst at redhat.com>
Date:   Sat Mar  7 16:17:48 2020 +0100

nv50/ir/nir: fix global_atomic_comp_swap

Fixes: 20d0ae464c4a ("nv50/ir: implement global atomics and handle it for nir")
Signed-off-by: Karol Herbst <kherbst at redhat.com>
Reviewed-by: Pierre Moreau <dev at pmoreau.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6367>

---

 src/gallium/drivers/nouveau/codegen/nv50_ir_from_nir.cpp | 2 ++
 1 file changed, 2 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 b776d70940e..a6aad71774b 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_nir.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_nir.cpp
@@ -2104,6 +2104,8 @@ Converter::visit(nir_intrinsic_instr *insn)
       Symbol *sym = mkSymbol(FILE_MEMORY_GLOBAL, 0, dType, offset);
       Instruction *atom =
          mkOp2(OP_ATOM, dType, newDefs[0], sym, getSrc(&insn->src[1], 0));
+      if (op == nir_intrinsic_global_atomic_comp_swap)
+         atom->setSrc(2, getSrc(&insn->src[2], 0));
       atom->setIndirect(0, 0, address);
       atom->subOp = getSubOp(op);
 



More information about the mesa-commit mailing list