xf86-video-intel: 5 commits - configure.ac NEWS src/sna/sna_display.c src/sna/sna_dri2.c test/dri2-race.c test/dri2-swap.c test/dri2-test.c

Chris Wilson ickle at kemper.freedesktop.org
Wed Jul 23 06:51:34 PDT 2014


 NEWS                  |   99 ++++++++++++++++++++++++++++++++++++++++++++++++++
 configure.ac          |    2 -
 src/sna/sna_display.c |   15 ++++++-
 src/sna/sna_dri2.c    |    9 ----
 test/dri2-race.c      |    2 -
 test/dri2-swap.c      |    2 -
 test/dri2-test.c      |    2 -
 7 files changed, 117 insertions(+), 14 deletions(-)

New commits:
commit 1c5e20716f192f0c38b4edd879d28e11126f7f01
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Sat Jul 5 08:47:16 2014 +0100

    2.99.913 snapshot

diff --git a/NEWS b/NEWS
index f49ea51..72fe0bb 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,102 @@
+Snapshot 2.99.913 (2014-07-23)
+==============================
+This should be it... A few fixes from testing the new code, we should be
+ready for the final release. However, we do have one standout feature in
+this snapshot, we now officially recognise HD Graphics 5300/5500/5600,
+Iris Graphics 6100 and Iris Pro Graphics 6200/P6300 (formerly known as
+Broadwell).
+
+ * Check the window actually covers the CRTC before doing a single CRTC flip,
+   and then restore the right framebuffer after completing CRTC flips.
+   Otherwise we would detect an error and disable an output under TearFree
+   Regression in 2.99.912
+   https://bugs.freedesktop.org/show_bug.cgi?id=80191
+
+ * Fix framebuffer creation on kernels older than 3.11
+   Regression in 2.99.912
+
+ * Check that the damage still exists after implicit reduction
+   Regression in 2.99.912
+   https://bugs.freedesktop.org/show_bug.cgi?id=77436
+
+ * Fix direction flags for fallback composited CopyAreas which
+   caused scrolling corruption in a few configurations
+   Regression from 2.20.0
+   https://bugs.freedesktop.org/show_bug.cgi?id=79843
+
+ * Do not throw away damage if there is no redundant copy
+   https://bugs.freedesktop.org/show_bug.cgi?id=79992
+
+ * Check clipping on PolyRect before discarding the clipped damage
+   Regression from 2.99.903
+   https://bugs.freedesktop.org/show_bug.cgi?id=79992
+
+ * Fix hints for GLXPixmapa, as these are never swapped and so
+   miss invalidating the hints on SwapBuffers with the result
+   that they are often presumed blank
+   Regression in 2.99.912
+   https://bugs.freedesktop.org/show_bug.cgi?id=79999
+
+ * Fix incoherent choice of source bo when constructing 8x8 tiles,
+   incorrect pattern origin when extracting, and then fix the
+   alignment of colour patterns for BLT operations
+   https://bugs.freedesktop.org/show_bug.cgi?id=80033
+
+ * Disable blending with the render engine on snoopable buffers
+   https://bugs.freedesktop.org/show_bug.cgi?id=80253
+
+ * Restore throttling to prevent client lag under heavy GPU load
+   Regression from 2.21.10
+   https://bugs.freedesktop.org/show_bug.cgi?id=77436
+
+ * Use ClientGone for notifications on shared DRI2 windows to prevent
+   rare crashes due to use-after-free of the swap requests
+   https://bugs.freedesktop.org/show_bug.cgi?id=80157
+
+ * Ensure the mmaped CPU bo is idle before migrating damage
+   https://bugs.freedesktop.org/show_bug.cgi?id=80560
+
+ * Fix incorrect clipping by the render engine for large DRI2 windows
+
+ * Ensure that the aperture tiling fallbacks are bounded
+
+ * Validate parameter to xf86-video-intel-backlight-helper more carefully
+   (CVE-2014-4910)
+
+ * Fix slaved scanouts for reverse optimus, though rotated slaves will
+   require further patches to Xorg.
+   https://bugs.freedesktop.org/show_bug.cgi?id=81383
+
+ * Fix build without Composite extension.
+
+ * Fix build without gettline().
+
+ * UXA: Allocate and resize frontbuffer consistently to pass sanity checks
+   https://bugs.freedesktop.org/show_bug.cgi?id=80088
+
+ * UXA: Report cached backlight value when the output is off (like sna)
+   https://bugzilla.redhat.com/show_bug.cgi?id=1032978
+
+ * UXA: Mark outputs as off before the kernel does (like sna)
+   This will prevent the internal panel from starting up blank in some
+   multi-monitor configurations
+   https://bugzilla.redhat.com/show_bug.cgi?id=1103806
+
+Note that the DRI2 exchange mechanism introduced in 2.99.912 exposes bugs
+in some compositors, at least kwin and comptom, which discard DRI2 buffer
+invalidates rather than resourcing their texture. For example,
+https://bugs.kde.org/show_bug.cgi?id=336589
+
+Note that the improved triple buffering introduced in DRI2 requires a patch
+to Xorg (now released upstream) to prevent crashes with DRI_PRIME.
+https://bugs.freedesktop.org/show_bug.cgi?id=80001
+
+Note that DRI3/Present require tracking the relevant development trees for
+mesa and the xserver as they are very much still under early testing. Also
+be aware that Mesa provides no support for explicit fencing so Damage
+tracking between compositors and clients is unserialised.
+
+
 Snapshot 2.99.912 (2014-06-10)
 ==============================
 A final round of features. We have everything from support for variable
diff --git a/configure.ac b/configure.ac
index 953f09c..280bfc9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-video-intel],
-        [2.99.912],
+        [2.99.913],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         [xf86-video-intel])
 AC_CONFIG_SRCDIR([Makefile.am])
commit d242965979cf251383a6230dbd65cdc1d9e231ea
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Wed Jul 23 14:25:25 2014 +0100

    sna: Skip performing an async flip after fixup
    
    After the first async failure and we fix up the CRTC, ordinary we queue
    a no-op flip in order to queue the event. For async flips, we do not
    want that event so just skip the flip.
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index 0600a8c..ffb8bb9 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -4892,14 +4892,13 @@ sna_crtc_flip(struct sna *sna, struct sna_crtc *crtc, struct kgem_bo *bo, int x,
 	arg.mode = crtc->kmode;
 	arg.mode_valid = 1;
 
-	DBG(("%s: applying crtc [%d, pipe=%d] mode=%dx%d+%d+%d@%d, fb=%d%s update to %d outputs [%d...]\n",
+	DBG(("%s: applying crtc [%d, pipe=%d] mode=%dx%d+%d+%d@%d, fb=%d across %d outputs [%d...]\n",
 	     __FUNCTION__, crtc->id, crtc->pipe,
 	     arg.mode.hdisplay,
 	     arg.mode.vdisplay,
 	     arg.x, arg.y,
 	     arg.mode.clock,
 	     arg.fb_id,
-	     bo != crtc->bo ? " [shadow]" : "",
 	     output_count, output_count ? output_ids[0] : 0));
 
 	if (drmIoctl(sna->kgem.fd, DRM_IOCTL_MODE_SETCRTC, &arg))
@@ -4973,6 +4972,11 @@ fixup_flip:
 
 				crtc->bo = kgem_bo_reference(bo);
 				crtc->bo->active_scanout++;
+
+				if (data == NULL)
+					goto next_crtc;
+
+				/* queue a flip in order to send the event */
 			} else {
 				if (count && !xf86SetDesiredModes(sna->scrn)) {
 					xf86DrvMsg(sna->scrn->scrnIndex, X_ERROR,
@@ -5044,6 +5048,7 @@ retry_flip:
 			sna->mode.flip_active++;
 		}
 
+next_crtc:
 		count++;
 	}
 
commit 4153d4b43004cd90c0d9a7a7db399dac4d30721e
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Wed Jul 23 13:54:19 2014 +0100

    sna/dri2: Tidy freeing the queued frame events
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_dri2.c b/src/sna/sna_dri2.c
index d4d099d..e4f1c84 100644
--- a/src/sna/sna_dri2.c
+++ b/src/sna/sna_dri2.c
@@ -1481,14 +1481,7 @@ void sna_dri2_destroy_window(WindowPtr win)
 
 		DBG(("%s: freeing chain\n", __FUNCTION__));
 
-		info = priv->chain;
-		info->draw = NULL;
-		info->client = NULL;
-
-		chain = info->chain;
-		info->chain = NULL;
-
-		assert(info->queued);
+		chain = priv->chain;
 		while ((info = chain)) {
 			info->draw = NULL;
 			info->client = NULL;
commit f2b2b6eda009924e5ec6974bb31be9d3749c9cf8
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Wed Jul 23 13:45:27 2014 +0100

    test/dri2: Use the right device node
    
    Use the device node as instructed by Xorg.
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/test/dri2-race.c b/test/dri2-race.c
index 01b023a..8862c84 100644
--- a/test/dri2-race.c
+++ b/test/dri2-race.c
@@ -28,7 +28,7 @@ static int dri2_open(Display *dpy)
 
 	printf ("Connecting to %s driver on %s\n", driver, device);
 
-	fd = open("/dev/dri/card0", O_RDWR);
+	fd = open(device, O_RDWR);
 	if (fd < 0)
 		return -1;
 
diff --git a/test/dri2-swap.c b/test/dri2-swap.c
index ba6b237..1bfb7d1 100644
--- a/test/dri2-swap.c
+++ b/test/dri2-swap.c
@@ -28,7 +28,7 @@ static int dri2_open(Display *dpy)
 
 	printf ("Connecting to %s driver on %s\n", driver, device);
 
-	fd = open("/dev/dri/card0", O_RDWR);
+	fd = open(device, O_RDWR);
 	if (fd < 0)
 		return -1;
 
diff --git a/test/dri2-test.c b/test/dri2-test.c
index 51b3da9..dd4179f 100644
--- a/test/dri2-test.c
+++ b/test/dri2-test.c
@@ -52,7 +52,7 @@ static int dri2_open(Display *dpy)
 
 	printf ("Connecting to %s driver on %s\n", driver, device);
 
-	fd = open("/dev/dri/card0", O_RDWR);
+	fd = open(device, O_RDWR);
 	if (fd < 0)
 		return -1;
 
commit 65c2376730e86d7502d8c47d49386be5f51e47ba
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Wed Jul 23 12:12:03 2014 +0100

    sna: Add a DBG message for slave damage propagation
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index d479c4a..0600a8c 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -1320,6 +1320,12 @@ static void sna_crtc_slave_damage(DamagePtr damage, RegionPtr region, void *clos
 	struct sna *sna = to_sna(crtc->base->scrn);
 	RegionPtr scr;
 
+	DBG(("%s: pushing damage [(%d, %d), (%d, %d) x %d] to CRTC [pipe=%d] (%d, %d)\n",
+	     __FUNCTION__,
+	     region->extents.x1, region->extents.y1, region->extents.x2, region->extents.y2,
+	     region_num_rects(region),
+	     crtc->pipe, crtc->base->x, crtc->base->y));
+
 	assert(crtc->slave_damage == damage);
 	assert(sna->mode.shadow_damage);
 


More information about the xorg-commit mailing list