xf86-video-intel: 2 commits - src/sna/sna_dri3.c src/sna/sna_io.c

Chris Wilson ickle at kemper.freedesktop.org
Thu Apr 16 06:32:27 PDT 2015


 src/sna/sna_dri3.c |    2 ++
 src/sna/sna_io.c   |    5 +++++
 2 files changed, 7 insertions(+)

New commits:
commit 57252b63f92c8f58cb62c28461d86becf463302b
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Thu Apr 16 14:29:53 2015 +0100

    sna: Force GTT fallback if we cannot BLT or RENDER download
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_io.c b/src/sna/sna_io.c
index d6aa129..4250f9e 100644
--- a/src/sna/sna_io.c
+++ b/src/sna/sna_io.c
@@ -281,6 +281,9 @@ fallback:
 		if (box[n].y2 > extents.y2)
 			extents.y2 = box[n].y2;
 	}
+	if (!can_blt && sna->render.max_3d_size == 0)
+		goto fallback;
+
 	if (kgem_bo_can_map(kgem, src_bo)) {
 		/* Is it worth detiling? */
 		if ((extents.y2 - extents.y1 - 1) * src_bo->pitch < 4096)
@@ -849,6 +852,8 @@ bool sna_write_boxes(struct sna *sna, PixmapPtr dst,
 		if (box[n].y2 > extents.y2)
 			extents.y2 = box[n].y2;
 	}
+	if (!can_blt && sna->render.max_3d_size == 0)
+		goto fallback;
 
 	/* Try to avoid switching rings... */
 	if (!can_blt || kgem->ring == KGEM_RENDER ||
commit 5df16db52ec994fce2f3af952ad08a13c9c700aa
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Thu Apr 16 14:22:33 2015 +0100

    sna/dri3: Mark incoming sna_pixmap->flags
    
    We use the flags for deciding how to operate on the GPU bo, so we should
    set them!
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_dri3.c b/src/sna/sna_dri3.c
index f586e24..ecfb6f3 100644
--- a/src/sna/sna_dri3.c
+++ b/src/sna/sna_dri3.c
@@ -270,6 +270,8 @@ static PixmapPtr sna_dri3_pixmap_from_fd(ScreenPtr screen,
 		priv->ptr = MAKE_STATIC_PTR(pixmap->devPrivate.ptr);
 	} else {
 		assert(priv->gpu_bo == bo);
+		priv->create = kgem_can_create_2d(&sna->kgem,
+						  width, height, depth);
 		priv->pinned |= PIN_DRI3;
 	}
 	list_add(&priv->cow_list, &sna->dri3.pixmaps);


More information about the xorg-commit mailing list