diff options
author | Zack Rusin <[email protected]> | 2007-11-06 06:06:04 -0500 |
---|---|---|
committer | Zack Rusin <[email protected]> | 2007-12-11 09:49:33 -0500 |
commit | 1f30efb7365075de0ae119a40ab70a16bc547670 (patch) | |
tree | 37d55d99729c36993ff279469d88635b690b633d /src/mesa/pipe/llvm/llvm_entry.c | |
parent | 8681deddd7a7e749adaf43c7df4313ea54922e62 (diff) |
Implement kilp and make it work
Diffstat (limited to 'src/mesa/pipe/llvm/llvm_entry.c')
-rw-r--r-- | src/mesa/pipe/llvm/llvm_entry.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/mesa/pipe/llvm/llvm_entry.c b/src/mesa/pipe/llvm/llvm_entry.c index 6bdb311c2b3..03f7ac8f14d 100644 --- a/src/mesa/pipe/llvm/llvm_entry.c +++ b/src/mesa/pipe/llvm/llvm_entry.c @@ -239,6 +239,8 @@ int run_fragment_shader(float x, float y, float4 results[4][16]; float4 temps[128];//MAX_PROGRAM_TEMPS struct ShaderInput args; + int mask = 0; + args.kilmask = 0; from_array(inputs, ainputs, 4, num_inputs); from_consts(consts, aconsts, num_consts); @@ -248,7 +250,11 @@ int run_fragment_shader(float x, float y, for (int i = 0; i < 4; ++i) { args.inputs = inputs[i]; args.dests = results[i]; + mask = args.kilmask; + args.kilmask = 0; execute_shader(&args); + args.kilmask = mask | (args.kilmask << i); + to_array(dests[i], args.dests, 2); } return ~args.kilmask; |