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

Chris Wilson ickle at kemper.freedesktop.org
Mon Apr 28 07:59:52 PDT 2014


 src/sna/sna_accel.c   |    8 ++++++++
 src/sna/sna_display.c |    8 +++++---
 2 files changed, 13 insertions(+), 3 deletions(-)

New commits:
commit 0b23011c27736d0ae2b33d8ea147c16b909baa57
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Mon Apr 28 15:59:18 2014 +0100

    sna: Tweaks to cursor DBG logging
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index 14446c7..740876c 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -3103,7 +3103,7 @@ static struct sna_cursor *__sna_create_cursor(struct sna *sna)
 	struct sna_cursor *c;
 	int size = sna->cursor.size;
 
-	__DBG(("%s(size=%d)\n", __FUNCTION__, size));
+	__DBG(("%s(size=%d, num_stash=%d)\n", __FUNCTION__, size, sna->cursor.num_stash));
 
 	c = sna->cursor.stash;
 	assert(c);
@@ -3286,7 +3286,7 @@ static struct sna_cursor *__sna_get_cursor(struct sna *sna, xf86CrtcPtr crtc)
 		pwrite.size = 4*size*size;
 		pwrite.data_ptr = (uintptr_t)image;
 		if (drmIoctl(sna->kgem.fd, DRM_IOCTL_I915_GEM_PWRITE, &pwrite))
-			__DBG(("%s: cursor update (pwrite) failed: %d\n", errno));
+			__DBG(("%s: cursor update (pwrite) failed: %d\n", __FUNCTION__, errno));
 	}
 
 	cursor->size = size;
@@ -3611,8 +3611,10 @@ sna_use_hw_cursor(ScreenPtr screen, CursorPtr cursor)
 	       cursor->bits->width, cursor->bits->height));
 
 	/* cursors are invariant */
-	if (cursor == sna->cursor.ref)
+	if (cursor == sna->cursor.ref) {
+		assert(sna->cursor.num_stash >= 0);
 		return TRUE;
+	}
 
 	if (sna->cursor.ref) {
 		FreeCursor(sna->cursor.ref, None);
commit d4bd452caa335a54076fa003ee616c2efe93bca3
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Mon Apr 28 14:01:43 2014 +0100

    sna: Assert against underflows in BLT command lengths
    
    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 8249e78..677db40 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -7747,6 +7747,7 @@ sna_copy_bitmap_blt(DrawablePtr _bitmap, DrawablePtr drawable, GCPtr gc,
 		     sx, sy, bx1, bx2));
 
 		src_stride = bstride*bh;
+		assert(src_stride > 0);
 		if (src_stride <= 128) {
 			src_stride = ALIGN(src_stride, 8) / 4;
 			assert(src_stride <= 32);
@@ -12875,6 +12876,7 @@ sna_poly_fill_rect_stippled_1_blt(DrawablePtr drawable,
 			     bx1, bx2));
 
 			src_stride = bstride*bh;
+			assert(src_stride > 0);
 			if (src_stride <= 128) {
 				src_stride = ALIGN(src_stride, 8) / 4;
 				assert(src_stride <= 32);
@@ -13067,6 +13069,7 @@ sna_poly_fill_rect_stippled_1_blt(DrawablePtr drawable,
 				     bx1, bx2, bw, bstride));
 
 				src_stride = bstride*bh;
+				assert(src_stride > 0);
 				if (src_stride <= 128) {
 					src_stride = ALIGN(src_stride, 8) / 4;
 					assert(src_stride <= 32);
@@ -13257,6 +13260,7 @@ sna_poly_fill_rect_stippled_1_blt(DrawablePtr drawable,
 					     bx1, bx2));
 
 					src_stride = bstride*bh;
+					assert(src_stride > 0);
 					if (src_stride <= 128) {
 						src_stride = ALIGN(src_stride, 8) / 4;
 						assert(src_stride <= 32);
@@ -13457,6 +13461,7 @@ sna_poly_fill_rect_stippled_n_box__imm(struct sna *sna,
 
 			len = bw*bh;
 			len = ALIGN(len, 8) / 4;
+			assert(len > 0);
 			assert(len <= 32);
 			if (!kgem_check_batch(&sna->kgem, 8+len) ||
 			    !kgem_check_bo_fenced(&sna->kgem, bo) ||
@@ -13582,6 +13587,7 @@ sna_poly_fill_rect_stippled_n_box(struct sna *sna,
 
 			len = bw*bh;
 			len = ALIGN(len, 8) / 4;
+			assert(len > 0);
 			if (!kgem_check_batch(&sna->kgem, 8+len) ||
 			    !kgem_check_bo_fenced(&sna->kgem, bo) ||
 			    !kgem_check_reloc(&sna->kgem, 2)) {
@@ -14691,6 +14697,7 @@ sna_glyph_blt(DrawablePtr drawable, GCPtr gc,
 			if (x1 + w <= extents->x1 || y1 + h <= extents->y1)
 				goto skip;
 
+			assert(len > 0);
 			if (!kgem_check_batch(&sna->kgem, 3+len)) {
 				_kgem_submit(&sna->kgem);
 				_kgem_set_mode(&sna->kgem, KGEM_BLT);
@@ -15429,6 +15436,7 @@ sna_reversed_glyph_blt(DrawablePtr drawable, GCPtr gc,
 				}
 			}
 
+			assert(len > 0);
 			if (!kgem_check_batch(&sna->kgem, 3+len)) {
 				_kgem_submit(&sna->kgem);
 				_kgem_set_mode(&sna->kgem, KGEM_BLT);


More information about the xorg-commit mailing list