Module: Mesa
Branch: 10.2
Commit: 7efdc55f5f415969ab1a3fbf5331fb2b0309a5ff
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=7efdc55f5f415969ab1a3fbf5331fb2b0309a5ff

Author: Christoph Bumiller <[email protected]>
Date:   Wed Jun 12 21:31:19 2013 +0200

nv50/ir/tgsi: optimize KIL

Reviewed-by: Ilia Mirkin <[email protected]>
Cc: "10.2" <[email protected]>
(cherry picked from commit d479713d25699c168af807ad36068691af11d0e0)

---

 src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp |    5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp 
b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp
index e24be51..a0f1fe1 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp
@@ -2457,7 +2457,12 @@ Converter::handleInstruction(const struct 
tgsi_full_instruction *insn)
       break;
    case TGSI_OPCODE_KILL_IF:
       val0 = new_LValue(func, FILE_PREDICATE);
+      mask = 0;
       for (c = 0; c < 4; ++c) {
+         const int s = tgsi.getSrc(0).getSwizzle(c);
+         if (mask & (1 << s))
+            continue;
+         mask |= 1 << s;
          mkCmp(OP_SET, CC_LT, TYPE_F32, val0, TYPE_F32, fetchSrc(0, c), zero);
          mkOp(OP_DISCARD, TYPE_NONE, NULL)->setPredicate(CC_P, val0);
       }

_______________________________________________
mesa-commit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to