summaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary/draw/draw_vs_sse.c
diff options
context:
space:
mode:
authorBrian Paul <[email protected]>2008-04-11 15:02:21 -0600
committerBrian Paul <[email protected]>2008-04-11 15:02:21 -0600
commit7c2416f06e518bc1491fe13e145dcc9487d75449 (patch)
tree843ab9262691a74e2ae414b183e35b9febe70fff /src/gallium/auxiliary/draw/draw_vs_sse.c
parente3cf0cd6a9f3f072594e5712763b98ce7e579bcf (diff)
gallium: handle TGSI immediates in SSE code for vertex shaders
Diffstat (limited to 'src/gallium/auxiliary/draw/draw_vs_sse.c')
-rw-r--r--src/gallium/auxiliary/draw/draw_vs_sse.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/gallium/auxiliary/draw/draw_vs_sse.c b/src/gallium/auxiliary/draw/draw_vs_sse.c
index f40d65df08f..13394129bc8 100644
--- a/src/gallium/auxiliary/draw/draw_vs_sse.c
+++ b/src/gallium/auxiliary/draw/draw_vs_sse.c
@@ -50,13 +50,15 @@ typedef void (XSTDCALL *codegen_function) (
const struct tgsi_exec_vector *input,
struct tgsi_exec_vector *output,
float (*constant)[4],
- struct tgsi_exec_vector *temporary );
+ struct tgsi_exec_vector *temporary,
+ float (*immediates)[4] );
struct draw_sse_vertex_shader {
struct draw_vertex_shader base;
struct x86_function sse2_program;
codegen_function func;
+ float immediates[TGSI_EXEC_NUM_IMMEDIATES][4];
};
@@ -149,7 +151,8 @@ vs_sse_run( struct draw_vertex_shader *base,
shader->func(machine->Inputs,
machine->Outputs,
machine->Consts,
- machine->Temps );
+ machine->Temps,
+ shader->immediates);
}
@@ -243,7 +246,7 @@ draw_create_vs_sse(struct draw_context *draw,
x86_init_func( &vs->sse2_program );
if (!tgsi_emit_sse2( (struct tgsi_token *) vs->base.state.tokens,
- &vs->sse2_program ))
+ &vs->sse2_program, vs->immediates ))
goto fail;
vs->func = (codegen_function) x86_get_func( &vs->sse2_program );