summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_gm107.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_gm107.cpp')
-rw-r--r--src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_gm107.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_gm107.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_gm107.cpp
index 209f5c67ab0..c7436e2e297 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_gm107.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_gm107.cpp
@@ -315,6 +315,19 @@ GM107LoweringPass::handleSUQ(TexInstruction *suq)
samples->tex.query = TXQ_TYPE;
}
+ if (suq->tex.target.isMS()) {
+ bld.setPosition(suq, true);
+
+ if (mask & 0x1)
+ bld.mkOp2(OP_SHR, TYPE_U32, suq->getDef(0), suq->getDef(0),
+ loadSuInfo32(ind, slot, NVC0_SU_INFO_MS(0), suq->tex.bindless));
+ if (mask & 0x2) {
+ int d = util_bitcount(mask & 0x1);
+ bld.mkOp2(OP_SHR, TYPE_U32, suq->getDef(d), suq->getDef(d),
+ loadSuInfo32(ind, slot, NVC0_SU_INFO_MS(1), suq->tex.bindless));
+ }
+ }
+
return true;
}