summaryrefslogtreecommitdiffstats
path: root/src/mesa/pipe/llvm/llvm_builtins.c
diff options
context:
space:
mode:
authorZack Rusin <[email protected]>2007-10-29 11:42:22 -0400
committerZack Rusin <[email protected]>2007-10-30 05:15:05 -0400
commitfd908ce234d1f553b59d65afb7e4243ffee24018 (patch)
treefcddc5e5d93a2c45d90d4bb31172e1a302d1aa94 /src/mesa/pipe/llvm/llvm_builtins.c
parentb0f3b5910ebd0737600ab7b1fdc135d74f2617f4 (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.c5
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);
}
}