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

Chris Wilson ickle at kemper.freedesktop.org
Wed Sep 19 01:23:02 PDT 2012


 src/sna/sna_accel.c |    4 ++++
 src/sna/sna_dri.c   |   17 ++++++++++++++---
 2 files changed, 18 insertions(+), 3 deletions(-)

New commits:
commit 853beff4306d5a168e310af82d0ddf9db319fdce
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Wed Sep 19 08:30:59 2012 +0100

    sna/dri:Add some DBG and assertions to validate names passed back to clients
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_dri.c b/src/sna/sna_dri.c
index b1fba20..1f65b0f 100644
--- a/src/sna/sna_dri.c
+++ b/src/sna/sna_dri.c
@@ -227,11 +227,15 @@ sna_dri_create_buffer(DrawablePtr draw,
 		pixmap = get_drawable_pixmap(draw);
 		buffer = sna_pixmap_get_buffer(pixmap);
 		if (buffer) {
-			DBG(("%s: reusing front buffer attachment\n",
-			     __FUNCTION__));
-
 			private = get_private(buffer);
+
+			DBG(("%s: reusing front buffer attachment, pixmap=%ld, handle=%d, name=%d\n",
+			     __FUNCTION__, pixmap->drawable.serialNumber,
+			     private->bo->handle, buffer->name));
+
 			assert(private->pixmap == pixmap);
+			assert(sna_pixmap(pixmap)->gpu_bo == private->bo);
+			assert(kgem_bo_flink(&sna->kgem, private->bo) == buffer->name);
 
 			private->refcnt++;
 			return buffer;
@@ -429,6 +433,8 @@ static void set_bo(PixmapPtr pixmap, struct kgem_bo *bo)
 		       pixmap->drawable.width,
 		       pixmap->drawable.height);
 	sna_damage_destroy(&priv->cpu_damage);
+	list_del(&priv->list);
+	priv->cpu = false;
 	priv->undamaged = false;
 
 	assert(bo->refcnt);
@@ -957,6 +963,8 @@ sna_dri_page_flip(struct sna *sna, struct sna_dri_frame_event *info)
 
 	DBG(("%s()\n", __FUNCTION__));
 
+	assert(sna_pixmap_get_buffer(sna->front) == info->front);
+
 	info->count = sna_page_flip(sna, bo, info, info->pipe);
 	if (info->count == 0)
 		return false;
@@ -1152,6 +1160,7 @@ sna_dri_exchange_buffers(DrawablePtr draw,
 	DBG(("%s: front_bo pitch=%d, size=%d\n",
 	     __FUNCTION__, front_bo->pitch, kgem_bo_size(front_bo)));
 
+	assert(sna_pixmap_get_buffer(pixmap) == front);
 	assert(pixmap->drawable.height * back_bo->pitch <= kgem_bo_size(back_bo));
 	assert(pixmap->drawable.height * front_bo->pitch <= kgem_bo_size(front_bo));
 
@@ -1322,6 +1331,8 @@ sna_dri_flip_continue(struct sna *sna,
 
 	DBG(("%s()\n", __FUNCTION__));
 
+	assert(sna_pixmap_get_buffer(get_drawable_pixmap(draw)) == info->front);
+
 	name = info->back->name;
 	bo = get_private(info->back)->bo;
 	assert(get_drawable_pixmap(draw)->drawable.height * bo->pitch <= kgem_bo_size(bo));
commit 8c1e60a15431b193b57d94a27b8e8de7c5a7e683
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Tue Sep 18 15:01:52 2012 +0100

    sna: Add some asserts useful for tracking an xserver drawing bug
    
    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 f10eda9..fbee637 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -5281,6 +5281,10 @@ sna_fill_spans__fill(DrawablePtr drawable,
 			b->y2 = b->y1 + 1;
 			DBG(("%s: (%d, %d), (%d, %d)\n",
 			     __FUNCTION__, b->x1, b->y1, b->x2, b->y2));
+			assert(b->x1 >= drawable->x);
+			assert(b->x2 <= drawable->x + drawable->width);
+			assert(b->y1 >= drawable->y);
+			assert(b->y2 <= drawable->y + drawable->height);
 			if (b->x2 > b->x1) {
 				if (b != box &&
 				    b->y1 == b[-1].y2 &&


More information about the xorg-commit mailing list