diff options
author | Samuel Pitoiset <samuel.pitoiset@gmail.com> | 2016-04-07 22:38:47 +0200 |
---|---|---|
committer | Emil Velikov <emil.l.velikov@gmail.com> | 2016-04-13 22:21:18 +0100 |
commit | 4aaea22ee2d4931ad7c449ca2230b0f1dd85368b (patch) | |
tree | a0787942be1c68f492f4e5647e8db99299c5319e | |
parent | e54e1d31f31c08dde0cae09444a20c3c0e03cfce (diff) |
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@gmail.com>
Acked-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: mesa-stable@lists.freedesktop.org
(cherry picked from commit 059308db841886101586aa3ec5ac74b89abf1a20)
-rw-r--r-- | src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp index 6192c0665e4..78c10f84003 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; |