From 4272c01fbfd42833e4e0937bed84e45fe5da52b9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Fonseca?= Date: Sun, 18 Apr 2010 09:48:55 +0200 Subject: [PATCH] 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 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/softpipe/sp_setup.c b/src/gallium/drivers/softpipe/sp_setup.c index 85966bc5e49..e136cb7cf73 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; -- 2.30.2