diff options
author | Jakob Bornecrantz <jakob@tungstengraphics.com> | 2008-05-30 13:46:18 +0200 |
---|---|---|
committer | Jakob Bornecrantz <jakob@tungstengraphics.com> | 2008-05-30 13:46:18 +0200 |
commit | 3869c3c87a40d9f41414082ad8dd3d747e6b34d8 (patch) | |
tree | 04d493660504d59b7e2d3c8b2a5178b3865b84ec /src/gallium/auxiliary/draw/draw_vs_sse.c | |
parent | 2ade5268dca67a73d3f5f8cc41ea86d1e48de9f0 (diff) | |
parent | 012c0dd6321e858af22389f98201c8dcb8f8780c (diff) | |
download | external_mesa3d-3869c3c87a40d9f41414082ad8dd3d747e6b34d8.zip external_mesa3d-3869c3c87a40d9f41414082ad8dd3d747e6b34d8.tar.gz external_mesa3d-3869c3c87a40d9f41414082ad8dd3d747e6b34d8.tar.bz2 |
Merge branch 'gallium-tex-surfaces' into gallium-0.1
Conflicts:
src/gallium/drivers/i915simple/i915_context.h
Diffstat (limited to 'src/gallium/auxiliary/draw/draw_vs_sse.c')
-rw-r--r-- | src/gallium/auxiliary/draw/draw_vs_sse.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/gallium/auxiliary/draw/draw_vs_sse.c b/src/gallium/auxiliary/draw/draw_vs_sse.c index 2dc9352..37cbe9b 100644 --- a/src/gallium/auxiliary/draw/draw_vs_sse.c +++ b/src/gallium/auxiliary/draw/draw_vs_sse.c @@ -70,8 +70,6 @@ struct draw_sse_vertex_shader { codegen_function func; struct tgsi_exec_machine *machine; - - float immediates[TGSI_EXEC_NUM_IMMEDIATES][4]; }; @@ -109,7 +107,7 @@ vs_sse_run_linear( struct draw_vertex_shader *base, machine->Outputs, (float (*)[4])constants, machine->Temps, - shader->immediates, + (float (*)[4])shader->base.immediates, input, base->info.num_inputs, input_stride, @@ -132,6 +130,8 @@ vs_sse_delete( struct draw_vertex_shader *base ) x86_release_func( &shader->sse2_program ); + align_free(shader->base.immediates); + FREE( (void*) shader->base.state.tokens ); FREE( shader ); } @@ -163,12 +163,18 @@ draw_create_vs_sse(struct draw_context *draw, vs->base.prepare = vs_sse_prepare; vs->base.run_linear = vs_sse_run_linear; vs->base.delete = vs_sse_delete; + + vs->base.immediates = align_malloc(TGSI_EXEC_NUM_IMMEDIATES * 4 * + sizeof(float), 16); + vs->machine = &draw->vs.machine; x86_init_func( &vs->sse2_program ); if (!tgsi_emit_sse2( (struct tgsi_token *) vs->base.state.tokens, - &vs->sse2_program, vs->immediates, TRUE )) + &vs->sse2_program, + (float (*)[4])vs->base.immediates, + TRUE )) goto fail; vs->func = (codegen_function) x86_get_func( &vs->sse2_program ); |