summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers
diff options
context:
space:
mode:
authorIlia Mirkin <[email protected]>2016-09-10 12:53:37 -0400
committerIlia Mirkin <[email protected]>2016-09-10 13:36:20 -0400
commita22aee5ad1154918aff77af5102fecd2aa39a631 (patch)
tree8fe2f4a99fbf39a9dd2e2f48df37c5d3f2dd1dd8 /src/gallium/drivers
parent83e8617f4b13e75f44ba45dd156c0656a5e07b08 (diff)
gm107/ir: AL2P writes to a predicate register
We have to force it to write to predicate 7 (aka PT) in order for it not to mess up another predicate. Unclear what would be returned in the predicate, perhaps an error code for out-of-bounds requests. Blob doesn't seem to check it. Signed-off-by: Ilia Mirkin <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]> Cc: [email protected]
Diffstat (limited to 'src/gallium/drivers')
-rw-r--r--src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gm107.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gm107.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gm107.cpp
index 791273faa0b..cfde66cd4ed 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gm107.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gm107.cpp
@@ -2307,6 +2307,7 @@ CodeEmitterGM107::emitAL2P()
{
emitInsn (0xefa00000);
emitField(0x2f, 2, (insn->getDef(0)->reg.size / 4) - 1);
+ emitPRED (0x2c);
emitO (0x20);
emitField(0x14, 11, insn->src(0).get()->reg.data.offset);
emitGPR (0x08, insn->src(0).getIndirect(0));