Mesa (master): draw: reset extra_vp_outputs.slot to zero in widepoint_flush ()

Brian Paul brianp at kemper.freedesktop.org
Mon Jun 1 21:09:05 UTC 2009


Module: Mesa
Branch: master
Commit: 427554211b5b8ab2c6afcd5bd574ac97fb3457da
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=427554211b5b8ab2c6afcd5bd574ac97fb3457da

Author: Brian Paul <brianp at vmware.com>
Date:   Mon Jun  1 14:28:57 2009 -0600

draw: reset extra_vp_outputs.slot to zero in widepoint_flush()

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 |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/src/gallium/auxiliary/draw/draw_pipe_wide_point.c b/src/gallium/auxiliary/draw/draw_pipe_wide_point.c
index 49034ae..d84bab9 100644
--- a/src/gallium/auxiliary/draw/draw_pipe_wide_point.c
+++ b/src/gallium/auxiliary/draw/draw_pipe_wide_point.c
@@ -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;
 }
 
 




More information about the mesa-commit mailing list