xf86-video-intel: 3 commits - src/sna/sna_accel.c src/sna/sna_present.c tools/Makefile.am

Chris Wilson ickle at kemper.freedesktop.org
Wed Apr 1 07:55:49 PDT 2015


 src/sna/sna_accel.c   |   11 ++++++-----
 src/sna/sna_present.c |    8 --------
 tools/Makefile.am     |    6 ++++--
 3 files changed, 10 insertions(+), 15 deletions(-)

New commits:
commit 61d2baa430dba6eb282167c61d7df1034d5acca7
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Wed Apr 1 15:52:52 2015 +0100

    configure: Make tools/PROGRAMS agnostic to tools presence
    
    In order to make tools indivdiually selectable for compiling, we don't
    want to override earlier tools - so use '+=' rather than a plain '='
    when adding each tool to the set of PROGRAMS.
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/tools/Makefile.am b/tools/Makefile.am
index 20f8a00..92df266 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -26,10 +26,12 @@ AM_CFLAGS = \
 drivermandir = $(DRIVER_MAN_DIR)
 policydir = $(datarootdir)/polkit-1/actions
 
+bin_PROGRAMS =
 noinst_PROGRAMS =
+libexec_PROGRAMS =
 
 if BUILD_TOOLS
-bin_PROGRAMS = intel-virtual-output
+bin_PROGRAMS += intel-virtual-output
 driverman_DATA = intel-virtual-output.$(DRIVER_MAN_SUFFIX)
 endif
 
@@ -47,7 +49,7 @@ dri3info_LDADD = $(X11_DRI3_LIBS) $(DRI_LIBS)
 endif
 
 if BUILD_BACKLIGHT_HELPER
-libexec_PROGRAMS = xf86-video-intel-backlight-helper
+libexec_PROGRAMS += xf86-video-intel-backlight-helper
 nodist_policy_DATA = org.x.xf86-video-intel.backlight-helper.policy
 
 backlight_helper = $(libexecdir)/xf86-video-intel-backlight-helper
commit cdac2b369ad0b88bc6765617a29fc14cc9543afc
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Wed Apr 1 15:50:46 2015 +0100

    sna: Relax unclean rules to check busyness on all foreign pixmaps
    
    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 55d613e..6fa15b2 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -3283,17 +3283,18 @@ inline static void sna_pixmap_unclean(struct sna *sna, struct sna_pixmap *priv)
 	sna_damage_destroy(&priv->cpu_damage);
 	list_del(&priv->flush_list);
 
-	if ((priv->gpu_bo->needs_flush & priv->flush) == 0 ||
-	    priv->gpu_bo->exec)
+	if (!priv->flush || priv->gpu_bo->exec)
 		return;
 
-	DBG(("%s(pixmap=%ld): cleaning foreign bo handle=%u\n",
-	     __FUNCTION__, priv->pixmap->drawable.serialNumber, priv->gpu_bo->handle));
-
 	busy.handle = priv->gpu_bo->handle;
 	busy.busy = 0;
 	ioctl(sna->kgem.fd, DRM_IOCTL_I915_GEM_BUSY, &busy);
 
+	DBG(("%s(pixmap=%ld): cleaning foreign bo handle=%u, busy=%x [ring=%d]\n",
+	     __FUNCTION__,
+	     priv->pixmap->drawable.serialNumber,
+	     busy.handle, busy.busy, !!(busy.busy & (0xfffe << 16))));
+
 	if (busy.busy) {
 		unsigned mode = KGEM_RENDER;
 		if (busy.busy & (0xfffe << 16))
commit 35537ec4bfed4118725b4871cb99326c85a4b2d3
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Wed Apr 1 15:07:46 2015 +0100

    sna/present: flush is not required
    
    present.flush is called on the Window after a copy from a Pixmap is
    completed - which will be naturally flushed anyway. What the API should
    be passing is the Pixmap, since we do want to flush the operations from
    it before sending the idle event. C'est la vie.
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_present.c b/src/sna/sna_present.c
index d6638db..1992b9b 100644
--- a/src/sna/sna_present.c
+++ b/src/sna/sna_present.c
@@ -339,14 +339,6 @@ sna_present_abort_vblank(RRCrtcPtr crtc, uint64_t event_id, uint64_t msc)
 static void
 sna_present_flush(WindowPtr window)
 {
-	PixmapPtr pixmap = get_window_pixmap(window);
-	struct sna_pixmap *priv;
-
-	DBG(("%s(pixmap=%ld)\n", __FUNCTION__, pixmap->drawable.serialNumber));
-
-	priv = sna_pixmap_move_to_gpu(pixmap, MOVE_READ | MOVE_ASYNC_HINT | __MOVE_FORCE);
-	if (priv && priv->gpu_bo)
-		kgem_scanout_flush(&to_sna_from_pixmap(pixmap)->kgem, priv->gpu_bo);
 }
 
 static bool


More information about the xorg-commit mailing list