draw: reset extra_vp_outputs.slot to zero in widepoint_flush()
authorBrian Paul <brianp@vmware.com>
Mon, 1 Jun 2009 20:28:57 +0000 (14:28 -0600)
committerBrian Paul <brianp@vmware.com>
Mon, 1 Jun 2009 20:28:57 +0000 (14:28 -0600)
Fixes a crash when clearing the window with a quad after drawing large
points.  We were asking the draw module how many vertex shader outputs
there were and got 3 instead of 2.  This led to creating vertices with
too many attributes and trying to read invalid memory.

We reset extra_vp_outputs.slot to zero in the aaline/aapoint stage's
flush functions already.
This omission was just an oversight in the wide_point stage.

src/gallium/auxiliary/draw/draw_pipe_wide_point.c

index 49034ae86a2de3160e027e3400191f9f51850905..d84bab9eaae034ee241924053a58a7aec98f72d6 100644 (file)
@@ -253,6 +253,7 @@ static void widepoint_flush( struct draw_stage *stage, unsigned flags )
 {
    stage->point = widepoint_first_point;
    stage->next->flush( stage->next, flags );
+   stage->draw->extra_vp_outputs.slot = 0;
 }