Mesa (11.2): nv50/ir: do not try to attach JOIN ops to ATOM

Emil Velikov evelikov at kemper.freedesktop.org
Thu Apr 14 19:39:07 UTC 2016


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

Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date:   Thu Apr  7 22:38:47 2016 +0200

nv50/ir: do not try to attach JOIN ops to ATOM

This might result in an INVALID_OPCODE dmesg error in case a join is
attached to an atomic operation.

Spotted with arb_shader_image_load_store-host-mem-barrier on GK104.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Acked-by: Ilia Mirkin <imirkin at alum.mit.edu>
Cc: mesa-stable at lists.freedesktop.org
(cherry picked from commit 059308db841886101586aa3ec5ac74b89abf1a20)

---

 src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
index 6192c06..78c10f8 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
@@ -2825,7 +2825,7 @@ FlatteningPass::visit(BasicBlock *bb)
              !isSurfaceOp(insn->op) && // not confirmed
              insn->op != OP_LINTERP && // probably just nve4
              insn->op != OP_PINTERP && // probably just nve4
-             ((insn->op != OP_LOAD && insn->op != OP_STORE) ||
+             ((insn->op != OP_LOAD && insn->op != OP_STORE && insn->op != OP_ATOM) ||
               (typeSizeof(insn->dType) <= 4 && !insn->src(0).isIndirect(0))) &&
              !insn->isNop()) {
             insn->join = 1;




More information about the mesa-commit mailing list