summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary/draw/draw_vertex_shader.c
diff options
context:
space:
mode:
authorBen Skeggs <skeggsb@gmail.com>2008-03-13 13:39:05 +1100
committerBen Skeggs <skeggsb@gmail.com>2008-03-13 13:39:05 +1100
commit03ec66375889f049b09f39ba98515aa35ac48164 (patch)
treee149d8defb52b1252af982b459902ee0800b17cd /src/gallium/auxiliary/draw/draw_vertex_shader.c
parentbd4fe0e87c1b979973d9a76aa48de5fbbb8d52b7 (diff)
parent2366bb1baf2e9ae5b6ecf19f66ae9e0a4b0d2f36 (diff)
Merge remote branch 'upstream/gallium-0.1' into nouveau-gallium-0.1
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, 12 insertions, 5 deletions
diff --git a/src/gallium/auxiliary/draw/draw_vertex_shader.c b/src/gallium/auxiliary/draw/draw_vertex_shader.c
index 1e95355555..133418baca 100644
--- a/src/gallium/auxiliary/draw/draw_vertex_shader.c
+++ b/src/gallium/auxiliary/draw/draw_vertex_shader.c
@@ -110,13 +110,20 @@ draw_bind_vertex_shader(struct draw_context *draw,
struct draw_vertex_shader *dvs)
{
draw_do_flush( draw, DRAW_FLUSH_STATE_CHANGE );
+
+ if (dvs)
+ {
+ draw->vertex_shader = dvs;
+ draw->num_vs_outputs = dvs->info.num_outputs;
- draw->vertex_shader = dvs;
- draw->num_vs_outputs = dvs->info.num_outputs;
+ tgsi_exec_machine_init(&draw->machine);
- tgsi_exec_machine_init(&draw->machine);
-
- dvs->prepare( dvs, draw );
+ dvs->prepare( dvs, draw );
+ }
+ else {
+ draw->vertex_shader = NULL;
+ draw->num_vs_outputs = 0;
+ }
}