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