Mesa (master): softpipe: Preserve/ check the signal of the number of scanlines in an edge.

Jose Fonseca jrfonseca at kemper.freedesktop.org
Sun Apr 18 08:38:10 UTC 2010


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

Author: José Fonseca <jfonseca at vmware.com>
Date:   Sun Apr 18 09:48:55 2010 +0200

softpipe: Preserve/check the signal of the number of scanlines in an edge.

It can become negative in some weird triangles.

---

 src/gallium/drivers/softpipe/sp_setup.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/src/gallium/drivers/softpipe/sp_setup.c b/src/gallium/drivers/softpipe/sp_setup.c
index 85966bc..e136cb7 100644
--- a/src/gallium/drivers/softpipe/sp_setup.c
+++ b/src/gallium/drivers/softpipe/sp_setup.c
@@ -691,7 +691,7 @@ static void setup_tri_edges( struct setup_context *setup )
 static void subtriangle( struct setup_context *setup,
 			 struct edge *eleft,
 			 struct edge *eright,
-			 unsigned lines )
+			 int lines )
 {
    const struct pipe_scissor_state *cliprect = &setup->softpipe->cliprect;
    const int minx = (int) cliprect->minx;
@@ -702,6 +702,7 @@ static void subtriangle( struct setup_context *setup,
    int sy = (int)eleft->sy;
 
    assert((int)eleft->sy == (int) eright->sy);
+   assert(lines >= 0);
 
    /* clip top/bottom */
    start_y = sy;




More information about the mesa-commit mailing list