xf86-video-intel: src/sna/sna_accel.c src/sna/sna_dri.c
Chris Wilson
ickle at kemper.freedesktop.org
Thu Mar 21 15:54:18 PDT 2013
src/sna/sna_accel.c | 1 +
src/sna/sna_dri.c | 24 ++++++++++++++----------
2 files changed, 15 insertions(+), 10 deletions(-)
New commits:
commit 9f8e86800345d19785eae2dd2099dd7d61a7a3b3
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Thu Mar 21 22:48:06 2013 +0000
sna/dri: Disable assertion and associated bookkeeping
Due to long standing ignored bugs in DRI2, we have to accept breakage
in the driver.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=62614
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 a2528f6..011b50f 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -1719,6 +1719,7 @@ skip_inplace_map:
if (priv->cpu_bo) {
DBG(("%s: syncing CPU bo\n", __FUNCTION__));
kgem_bo_sync__cpu(&sna->kgem, priv->cpu_bo);
+ assert(pixmap->devPrivate.ptr == ((unsigned long)priv->cpu_bo->map) & ~3);
}
if (priv->clear_color == 0 || pixmap->drawable.bitsPerPixel == 8) {
diff --git a/src/sna/sna_dri.c b/src/sna/sna_dri.c
index 1a02449..0962e25 100644
--- a/src/sna/sna_dri.c
+++ b/src/sna/sna_dri.c
@@ -872,10 +872,10 @@ sna_dri_copy(struct sna *sna, DrawablePtr draw, RegionPtr region,
}
static bool
-can_blit(struct sna * sna,
+can_blit(struct sna *sna,
DrawablePtr draw,
- DRI2BufferPtr front,
- DRI2BufferPtr back)
+ DRI2BufferPtr dst,
+ DRI2BufferPtr src)
{
RegionPtr clip;
int w, h;
@@ -884,28 +884,34 @@ can_blit(struct sna * sna,
if (draw->type == DRAWABLE_PIXMAP)
return true;
- if (get_private(front)->pixmap != get_drawable_pixmap(draw)) {
- DBG(("%s: reject as front pixmap=%ld, but expecting pixmap=%ld\n",
+#if 0
+ if (get_private(dst)->pixmap != get_drawable_pixmap(draw)) {
+ DBG(("%s: reject as dst pixmap=%ld, but expecting pixmap=%ld\n",
__FUNCTION__,
- get_private(front)->pixmap ? get_private(front)->pixmap->drawable.serialNumber : 0,
+ get_private(dst)->pixmap ? get_private(dst)->pixmap->drawable.serialNumber : 0,
get_drawable_pixmap(draw)->drawable.serialNumber));
return false;
}
+ assert(sna_pixmap(get_private(dst)->pixmap)->flush);
+#endif
+ assert(get_private(dst)->bo->flush);
+ assert(get_private(src)->bo->flush);
+
clip = &((WindowPtr)draw)->clipList;
w = clip->extents.x2 - draw->x;
h = clip->extents.y2 - draw->y;
if ((w|h) < 0)
return false;
- s = get_private(front)->size;
+ s = get_private(dst)->size;
if ((s>>16) < h || (s&0xffff) < w) {
DBG(("%s: reject front size (%dx%d) < (%dx%d)\n", __func__,
s&0xffff, s>>16, w, h));
return false;
}
- s = get_private(back)->size;
+ s = get_private(src)->size;
if ((s>>16) < h || (s&0xffff) < w) {
DBG(("%s:reject back size (%dx%d) < (%dx%d)\n", __func__,
s&0xffff, s>>16, w, h));
@@ -945,8 +951,6 @@ sna_dri_copy_region(DrawablePtr draw,
if (!can_blit(sna, draw, dst_buffer, src_buffer))
return;
- assert(sna_pixmap(pixmap)->flush);
-
if (dst_buffer->attachment == DRI2BufferFrontLeft) {
dst = sna_pixmap_get_bo(pixmap);
copy = (void *)sna_dri_copy_to_front;
More information about the xorg-commit
mailing list