summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary/draw/draw_vertex_shader.c
diff options
context:
space:
mode:
authorBrian <brian@i915.localnet.net>2008-02-27 16:02:58 -0700
committerBrian <brian@i915.localnet.net>2008-02-27 16:02:58 -0700
commitcddeca51adf0d2b736a223e47b60f6ef3be85bff (patch)
tree6aa036301dcd1cd5cb4488742427fec2f5c6d7b8 /src/gallium/auxiliary/draw/draw_vertex_shader.c
parent7df26d76d2a37e9e828296bfbcf7cec04bfbe233 (diff)
gallium: remove dependencies on pipe_shader_state's semantic info
Use tgsi_scan_shader() to populate a tgsi_shader_info struct and use that instead.
Diffstat (limited to 'src/gallium/auxiliary/draw/draw_vertex_shader.c')
-rw-r--r--src/gallium/auxiliary/draw/draw_vertex_shader.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/gallium/auxiliary/draw/draw_vertex_shader.c b/src/gallium/auxiliary/draw/draw_vertex_shader.c
index 5d2f5c9c43..1e95355555 100644
--- a/src/gallium/auxiliary/draw/draw_vertex_shader.c
+++ b/src/gallium/auxiliary/draw/draw_vertex_shader.c
@@ -91,15 +91,16 @@ draw_create_vertex_shader(struct draw_context *draw,
struct draw_vertex_shader *vs;
vs = draw_create_vs_llvm( draw, shader );
- if (vs)
- return vs;
+ if (!vs) {
+ vs = draw_create_vs_sse( draw, shader );
+ if (!vs) {
+ vs = draw_create_vs_exec( draw, shader );
+ }
+ }
+ assert(vs);
- vs = draw_create_vs_sse( draw, shader );
- if (vs)
- return vs;
+ tgsi_scan_shader(shader->tokens, &vs->info);
- vs = draw_create_vs_exec( draw, shader );
- assert(vs);
return vs;
}
@@ -111,7 +112,7 @@ draw_bind_vertex_shader(struct draw_context *draw,
draw_do_flush( draw, DRAW_FLUSH_STATE_CHANGE );
draw->vertex_shader = dvs;
- draw->num_vs_outputs = dvs->state->num_outputs;
+ draw->num_vs_outputs = dvs->info.num_outputs;
tgsi_exec_machine_init(&draw->machine);