summaryrefslogtreecommitdiff
path: root/src/mesa/pipe/llvm/gallivm.cpp
diff options
context:
space:
mode:
authorZack Rusin <zack@tungstengraphics.com>2007-11-06 06:06:04 -0500
committerZack Rusin <zack@tungstengraphics.com>2007-12-11 09:49:33 -0500
commit1f30efb7365075de0ae119a40ab70a16bc547670 (patch)
tree37d55d99729c36993ff279469d88635b690b633d /src/mesa/pipe/llvm/gallivm.cpp
parent8681deddd7a7e749adaf43c7df4313ea54922e62 (diff)
Implement kilp and make it work
Diffstat (limited to 'src/mesa/pipe/llvm/gallivm.cpp')
-rw-r--r--src/mesa/pipe/llvm/gallivm.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/mesa/pipe/llvm/gallivm.cpp b/src/mesa/pipe/llvm/gallivm.cpp
index 65c95074fd..a1101a7ba8 100644
--- a/src/mesa/pipe/llvm/gallivm.cpp
+++ b/src/mesa/pipe/llvm/gallivm.cpp
@@ -432,7 +432,11 @@ translate_instruction(llvm::Module *module,
break;
case TGSI_OPCODE_DDY:
break;
- case TGSI_OPCODE_KILP:
+ case TGSI_OPCODE_KILP: {
+ out = instr->kilp(inputs[0]);
+ storage->setKilElement(out);
+ return;
+ }
break;
case TGSI_OPCODE_PK2H:
break;
@@ -929,11 +933,9 @@ int gallivm_fragment_shader_exec(struct gallivm_prog *prog,
fragment_shader_runner runner = reinterpret_cast<fragment_shader_runner>(prog->function);
assert(runner);
- runner(fx, fy, dests, inputs, prog->num_interp,
- consts, prog->num_consts,
- samplers);
-
- return 0;
+ return runner(fx, fy, dests, inputs, prog->num_interp,
+ consts, prog->num_consts,
+ samplers);
}
void gallivm_prog_dump(struct gallivm_prog *prog, const char *file_prefix)