xf86-video-intel: 2 commits - src/sna/sna_accel.c src/sna/sna_display.c

Chris Wilson ickle at kemper.freedesktop.org
Mon Oct 31 07:13:48 PDT 2011


 src/sna/sna_accel.c   |   29 +++++++++++++++--------------
 src/sna/sna_display.c |    2 +-
 2 files changed, 16 insertions(+), 15 deletions(-)

New commits:
commit 20a4f533958991557a3b05af00f2856657579d68
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Mon Oct 31 14:14:40 2011 +0000

    sna: Apply the GPU damage for clipped PolyFillRectangles
    
    Reported-by: Clemens Eisserer <linuxhippy at gmail.com>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=42425
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index 5f7e3b9..4c9c09a 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -1368,7 +1368,7 @@ sna_self_copy_boxes(DrawablePtr src, DrawablePtr dst, GCPtr gc,
 	int alu = gc ? gc->alu : GXcopy;
 	int16_t tx, ty;
 
-	if (n == 0 || (dx | dy) == 0)
+	if (n == 0 || ((dx | dy) == 0 && alu == GXcopy))
 		return;
 
 	DBG(("%s (boxes=%dx[(%d, %d), (%d, %d)...], src=+(%d, %d), alu=%d, pix.size=%dx%d)\n",
@@ -5022,8 +5022,11 @@ sna_poly_fill_rect_blt(DrawablePtr drawable,
 		}
 
 		RegionUninit(&clip);
-		if (b != boxes)
+		if (b != boxes) {
 			fill.boxes(sna, &fill, boxes, b-boxes);
+			if (damage)
+				sna_damage_add_boxes(damage, boxes, last_box-boxes, 0, 0);
+		}
 	}
 done:
 	fill.done(sna, &fill);
diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index 98743bc..a82ccd8 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -603,7 +603,7 @@ static void update_flush_interval(struct sna *sna)
 
 	sna->flush_interval = 2000 * 1000 * 1000 / max_vrefresh;
 	DBG(("max_vrefresh=%d, flush_interval=%d ns\n",
-	       max_vrefresh, sna->flush_inteval));
+	       max_vrefresh, sna->flush_interval));
 }
 
 static Bool
commit 7172f28c2b36aaa8c3a74ae4a7f699d3d4af10eb
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Mon Oct 31 12:53:35 2011 +0000

    sna: Fix placement of clipped wide PolyRectangle
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index feb13e9..5f7e3b9 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -4356,7 +4356,7 @@ zero_clipped:
 					box[1].y2 += rr.height;
 
 					box[2].y1 = rr.y + 1;
-					box[2].y2 = box[2].y1 + rr.height;
+					box[2].y2 = rr.y + rr.height;
 					box[2].x1 = rr.x;
 					box[2].x2 = rr.x + 1;
 
@@ -4414,7 +4414,7 @@ zero_clipped:
 					box[1].y2 += rr.height;
 
 					box[2].y1 = rr.y + 1;
-					box[2].y2 = box[2].y1 + rr.height;
+					box[2].y2 = rr.y + rr.height;
 					box[2].x1 = rr.x;
 					box[2].x2 = rr.x + 1;
 
@@ -4495,12 +4495,11 @@ wide_clipped:
 					box[1].y1 = rr.y + offset3;
 					box[1].y2 = rr.y + rr.height - offset1;
 
-					box[2].x1 = rr.x + rr.width - offset1;
-					box[2].x2 = box[2].x1 + offset2;
-					box[2].y1 = rr.y + offset3;
-					box[2].y2 = rr.y + rr.height - offset1;
+					box[2] = box[1];
+					box[3].x1 += rr.width;
+					box[3].x2 += rr.width;
 
-					box[3] = box[1];
+					box[3] = box[0];
 					box[3].y1 += rr.height;
 					box[3].y2 += rr.height;
 					count = 4;
@@ -4564,12 +4563,11 @@ wide_clipped:
 					box[1].y1 = rr.y + offset3;
 					box[1].y2 = rr.y + rr.height - offset1;
 
-					box[2].x1 = rr.x + rr.width - offset1;
-					box[2].x2 = box[2].x1 + offset2;
-					box[2].y1 = rr.y + offset3;
-					box[2].y2 = rr.y + rr.height - offset1;
+					box[2] = box[1];
+					box[3].x1 += rr.width;
+					box[3].x2 += rr.width;
 
-					box[3] = box[1];
+					box[3] = box[0];
 					box[3].y1 += rr.height;
 					box[3].y2 += rr.height;
 					count = 4;


More information about the xorg-commit mailing list