diff options
author | Zack Rusin <[email protected]> | 2007-10-29 11:42:22 -0400 |
---|---|---|
committer | Zack Rusin <[email protected]> | 2007-10-30 05:15:05 -0400 |
commit | fd908ce234d1f553b59d65afb7e4243ffee24018 (patch) | |
tree | fcddc5e5d93a2c45d90d4bb31172e1a302d1aa94 /src/mesa/pipe/llvm/llvm_builtins.c | |
parent | b0f3b5910ebd0737600ab7b1fdc135d74f2617f4 (diff) |
Change the way we handle temporaries in LLVM translation.
TGSI uses TEMP, among others, as a way of passing arguments
from one function to another. Instead of trying to figure out
which temp's a function needs and trying to dynamically adjust its
signature just pass the whole array of temporaries to them.
Diffstat (limited to 'src/mesa/pipe/llvm/llvm_builtins.c')
-rw-r--r-- | src/mesa/pipe/llvm/llvm_builtins.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/mesa/pipe/llvm/llvm_builtins.c b/src/mesa/pipe/llvm/llvm_builtins.c index b0f7cae43b7..c8ed384ab92 100644 --- a/src/mesa/pipe/llvm/llvm_builtins.c +++ b/src/mesa/pipe/llvm/llvm_builtins.c @@ -165,7 +165,7 @@ void to_array(float (*dests)[4], float4 *in, int num_attribs) } extern void execute_shader(float4 dests[16], float4 inputs[16], - float4 consts[32]); + float4 consts[32], float4 temps[128]); void run_vertex_shader(float (*ainputs)[16][4], float (*dests)[16][4], @@ -178,6 +178,7 @@ void run_vertex_shader(float (*ainputs)[16][4], float4 inputs[16*32*4][16]; float4 consts[32]; float4 results[16*32*4][16]; + float4 temps[128];//MAX_PROGRAM_TEMPS /*printf("XXX LLVM run_vertex_shader vertices = %d, inputs = %d, attribs = %d, consts = %d\n", num_vertices, num_inputs, num_attribs, num_consts);*/ @@ -186,7 +187,7 @@ void run_vertex_shader(float (*ainputs)[16][4], for (int i = 0; i < num_vertices; ++i) { float4 *in = inputs[i]; float4 *res = results[i]; - execute_shader(res, in, consts); + execute_shader(res, in, consts, temps); to_array(dests[i], res, num_attribs); } } |