xf86-video-intel: 2 commits - src/sna/sna_accel.c src/sna/sna_dri.c
Chris Wilson
ickle at kemper.freedesktop.org
Wed Jan 30 13:41:07 PST 2013
src/sna/sna_accel.c | 6 +++++-
src/sna/sna_dri.c | 9 +++++++--
2 files changed, 12 insertions(+), 3 deletions(-)
New commits:
commit c2d06c407e1c2cbbf3f7f6c4989710a799cd43d0
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Wed Jan 30 21:17:42 2013 +0000
sna: Improve DBG output for damaged slave outputs
After computing the intersection of the damage with the slave, give the
region extents.
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 58d8c19..d34a4f9 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -1019,7 +1019,6 @@ sna_share_pixmap_backing(PixmapPtr pixmap, ScreenPtr slave, void **fd_handle)
assert((priv->gpu_bo->pitch & 255) == 0);
/* And export the bo->pitch via pixmap->devKind */
- assert(!priv->mapped);
pixmap->devPrivate.ptr = kgem_bo_map__async(&sna->kgem, priv->gpu_bo);
if (pixmap->devPrivate.ptr == NULL)
return FALSE;
@@ -13819,6 +13818,11 @@ static void sna_accel_post_damage(struct sna *sna)
RegionTranslate(®ion, -dirty->x, -dirty->y);
DamageRegionAppend(&dirty->slave_dst->drawable, ®ion);
+ DBG(("%s: slave: ((%d, %d), (%d, %d))x%d\n", __FUNCTION__,
+ region.extents.x1, region.extents.y1,
+ region.extents.x2, region.extents.y2,
+ RegionNumRects(®ion.extents)));
+
box = REGION_RECTS(®ion);
n = REGION_NUM_RECTS(®ion);
if (wedged(sna)) {
commit 8867aa6a46c33fd2abf3b3f0b1d6115bad6c8017
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Wed Jan 30 21:15:55 2013 +0000
sna/dri: Handle change of BackBuffer across a pending flip
If we encounter a delayed flip with a different back buffer than the
current, simply update the info rather than bug out.
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 e33cd78..f951d13 100644
--- a/src/sna/sna_dri.c
+++ b/src/sna/sna_dri.c
@@ -1862,10 +1862,15 @@ sna_dri_schedule_flip(ClientPtr client, DrawablePtr draw,
DBG(("%s: performing immediate swap on pipe %d, pending? %d, mode: %d\n",
__FUNCTION__, pipe, info != NULL, info ? info->mode : 0));
- if (info && info->draw == draw) {
+ if (info &&
+ info->draw == draw) {
assert(info->type == DRI2_FLIP_THROTTLE);
assert(info->front == front);
- assert(info->back == back);
+ if (info->back != back) {
+ _sna_dri_destroy_buffer(sna, info->back);
+ info->back = back;
+ sna_dri_reference_buffer(back);
+ }
if (current_msc >= *target_msc) {
DBG(("%s: executing xchg of pending flip\n",
__FUNCTION__));
More information about the xorg-commit
mailing list