From f30b0beea4f5657a60eb5b286f41105298fa451a Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Sun, 4 Mar 2012 22:23:39 +0000 Subject: [PATCH] sna/trapezoids: Ellide empty cells Signed-off-by: Chris Wilson --- src/sna/sna_trapezoids.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/sna/sna_trapezoids.c b/src/sna/sna_trapezoids.c index 2d8b3b97..33ea3bbb 100644 --- a/src/sna/sna_trapezoids.c +++ b/src/sna/sna_trapezoids.c @@ -1249,18 +1249,19 @@ tor_blt(struct sna *sna, cell->x, cell->covered_height, cell->uncovered_area, cover, xmax)); - box.x2 = x; - if (box.x2 > box.x1 && (unbounded || cover)) { - __DBG(("%s: span (%d, %d)x(%d, %d) @ %d\n", __FUNCTION__, - box.x1, box.y1, - box.x2 - box.x1, - box.y2 - box.y1, - cover)); - span(sna, op, clip, &box, cover); + if (cell->covered_height || cell->uncovered_area) { + box.x2 = x; + if (box.x2 > box.x1 && (unbounded || cover)) { + __DBG(("%s: span (%d, %d)x(%d, %d) @ %d\n", __FUNCTION__, + box.x1, box.y1, + box.x2 - box.x1, + box.y2 - box.y1, + cover)); + span(sna, op, clip, &box, cover); + } + box.x1 = box.x2; + cover += cell->covered_height*FAST_SAMPLES_X*2; } - box.x1 = box.x2; - - cover += cell->covered_height*FAST_SAMPLES_X*2; if (cell->uncovered_area) { int area = cover - cell->uncovered_area;