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