Browse Source

nv50/ir/tgsi: optimize KIL

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.2" <mesa-stable@lists.freedesktop.org>
tags/10.3-branchpoint
Christoph Bumiller 12 years ago
parent
commit
d479713d25
1 changed files with 5 additions and 0 deletions
  1. 5
    0
      src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp

+ 5
- 0
src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp View File

@@ -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);
}

Loading…
Cancel
Save