[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

xserver-xorg-video-intel: Changes to 'ubuntu'



 debian/changelog                                         |   29 
 debian/patches/randr.patch                               |  296 ----
 debian/patches/series                                    |    2 
 debian/patches/sna-check-for-system-memory-contents.diff |   35 
 man/intel.man                                            |   13 
 src/intel_list.h                                         |    7 
 src/intel_options.c                                      |    1 
 src/intel_options.h                                      |    1 
 src/sna/gen6_render.c                                    |    3 
 src/sna/gen7_render.c                                    |    3 
 src/sna/gen8_render.c                                    |    3 
 src/sna/kgem.c                                           |  143 +-
 src/sna/sna.h                                            |    2 
 src/sna/sna_accel.c                                      |    5 
 src/sna/sna_display.c                                    |  248 ++-
 src/sna/sna_dri2.c                                       |  941 +++++++--------
 src/sna/sna_driver.c                                     |   15 
 src/sna/sna_render.c                                     |    6 
 src/uxa/intel_hwmc.c                                     |    2 
 19 files changed, 810 insertions(+), 945 deletions(-)

New commits:
commit 6e0c0daceeae09219a17af379306481a0a010e70
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Wed Oct 28 07:53:28 2015 +0200

    release to xenial

diff --git a/debian/changelog b/debian/changelog
index ff3ed32..f3741ce 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,9 +1,9 @@
-xserver-xorg-video-intel (2:2.99.917+git20151019-1~exp1ubuntu1) UNRELEASED; urgency=medium
+xserver-xorg-video-intel (2:2.99.917+git20151019-1~exp1ubuntu1) xenial; urgency=medium
 
   * Merge from Debian experimental.
   * Drop sna-check-for-system-memory-contents.diff, randr.patch. Upstream.
 
- -- Timo Aaltonen <tjaalton@debian.org>  Wed, 28 Oct 2015 07:37:35 +0200
+ -- Timo Aaltonen <tjaalton@debian.org>  Wed, 28 Oct 2015 07:50:57 +0200
 
 xserver-xorg-video-intel (2:2.99.917+git20151019-1~exp1) experimental; urgency=medium
 

commit 725dda55c9cae4937cfd6c04a9107f20ed3b8295
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Wed Oct 28 07:39:35 2015 +0200

    Drop sna-check-for-system-memory-contents.diff, randr.patch. Upstream.

diff --git a/debian/changelog b/debian/changelog
index 23e3810..ff3ed32 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+xserver-xorg-video-intel (2:2.99.917+git20151019-1~exp1ubuntu1) UNRELEASED; urgency=medium
+
+  * Merge from Debian experimental.
+  * Drop sna-check-for-system-memory-contents.diff, randr.patch. Upstream.
+
+ -- Timo Aaltonen <tjaalton@debian.org>  Wed, 28 Oct 2015 07:37:35 +0200
+
 xserver-xorg-video-intel (2:2.99.917+git20151019-1~exp1) experimental; urgency=medium
 
   * New upstream snapshot.
diff --git a/debian/patches/randr.patch b/debian/patches/randr.patch
deleted file mode 100644
index 9e963b8..0000000
--- a/debian/patches/randr.patch
+++ /dev/null
@@ -1,296 +0,0 @@
-commit bf63eba5f1900ab5314e3d37dff55cfca800d400
-Author: Chris Wilson <chris@chris-wilson.co.uk>
-Date:   Wed Sep 9 11:18:15 2015 +0100
-
-    Combined RandR changes:
-    f5aabb7bddc6fc5dc910a983d1291c9864f65f06
-    f384af433cbb39ad74e02b10d3700e71c8668506
-    d50d336605e9be7280529b0eb565402d7646c913
-    2c08d72393e4c8ddf5926571b087459aaa225cb1
-    650da13c7257019728cfca361dfcbe34a6c526ef
-    717b6208d0d7bdcdacaf30b871216e6084c7205c
-    23986f0a31dbdec2e2086ca898bee43842ab73d4
-    15215651a992b7aa06314b9118ad9028b51c7e3e
-    31d42ed5637a1b2223d48d0db4d7c512b27aee07
-    679ee12079a7d2682d41506b81973c7c7d4fa1d8
-    096ddef22d6c57198a424eef00845dc7302b0cfe
-
-diff --git a/src/sna/sna.h b/src/sna/sna.h
-index 6c4d179..7592f7b 100644
---- a/src/sna/sna.h
-+++ b/src/sna/sna.h
-@@ -442,7 +442,7 @@ bool sna_mode_pre_init(ScrnInfoPtr scrn, struct sna *sna);
- bool sna_mode_fake_init(struct sna *sna, int num_fake);
- bool sna_mode_wants_tear_free(struct sna *sna);
- void sna_mode_adjust_frame(struct sna *sna, int x, int y);
--extern void sna_mode_discover(struct sna *sna);
-+extern void sna_mode_discover(struct sna *sna, bool tell);
- extern void sna_mode_check(struct sna *sna);
- extern bool sna_mode_disable(struct sna *sna);
- extern void sna_mode_enable(struct sna *sna);
-diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
-index 34d19bb..f562660 100644
---- a/src/sna/sna_display.c
-+++ b/src/sna/sna_display.c
-@@ -90,6 +90,8 @@ void *alloca(size_t);
- #include <memcheck.h>
- #endif
- 
-+#define COLDPLUG_DELAY_MS 2000
-+
- /* Minor discrepancy between 32-bit/64-bit ABI in old kernels */
- union compat_mode_get_connector{
- 	struct drm_mode_get_connector conn;
-@@ -951,6 +953,8 @@ static void
- sna_crtc_force_outputs_on(xf86CrtcPtr crtc)
- {
- 	xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(crtc->scrn);
-+	/* All attached outputs are valid, so update our timestamps */
-+	unsigned now = GetTimeInMillis();
- 	int i;
- 
- 	assert(to_sna_crtc(crtc));
-@@ -970,6 +974,7 @@ sna_crtc_force_outputs_on(xf86CrtcPtr crtc)
- 			continue;
- 
- 		__sna_output_dpms(output, DPMSModeOn, false);
-+		to_sna_output(output)->last_detect = now;
- 	}
- 
- #if XF86_CRTC_VERSION >= 3
-@@ -1211,9 +1216,10 @@ sna_crtc_apply(xf86CrtcPtr crtc)
- 	     output_count, output_count ? output_ids[0] : 0));
- 
- 	ret = drmIoctl(sna->kgem.fd, DRM_IOCTL_MODE_SETCRTC, &arg) == 0;
--
--	sna_crtc->mode_serial++;
--	sna_crtc_force_outputs_on(crtc);
-+	if (ret) {
-+		sna_crtc->mode_serial++;
-+		sna_crtc_force_outputs_on(crtc);
-+	}
- unblock:
- 	sigio_unblock(sigio);
- 	return ret;
-@@ -2633,7 +2639,7 @@ error:
- 	sna_crtc->cursor_transform = saved_cursor_transform;
- 	sna_crtc->hwcursor = saved_hwcursor;
- 	sna_crtc->bo = saved_bo;
--	sna_mode_discover(sna);
-+	sna_mode_discover(sna, true);
- 	return FALSE;
- }
- 
-@@ -4787,17 +4793,53 @@ static bool disable_unused_crtc(struct sna *sna)
- 	return update;
- }
- 
--void sna_mode_discover(struct sna *sna)
-+static bool
-+output_check_status(struct sna *sna, struct sna_output *output)
-+{
-+	union compat_mode_get_connector compat_conn;
-+	struct drm_mode_modeinfo dummy;
-+	xf86OutputStatus status;
-+
-+	VG_CLEAR(compat_conn);
-+
-+	compat_conn.conn.connector_id = output->id;
-+	compat_conn.conn.count_modes = 1; /* skip detect */
-+	compat_conn.conn.modes_ptr = (uintptr_t)&dummy;
-+	compat_conn.conn.count_encoders = 0;
-+	compat_conn.conn.count_props = 0;
-+
-+	(void)drmIoctl(sna->kgem.fd,
-+		       DRM_IOCTL_MODE_GETCONNECTOR,
-+		       &compat_conn.conn);
-+
-+	switch (compat_conn.conn.connection) {
-+	case DRM_MODE_CONNECTED:
-+		status = XF86OutputStatusConnected;
-+		break;
-+	case DRM_MODE_DISCONNECTED:
-+		status = XF86OutputStatusDisconnected;
-+		break;
-+	default:
-+	case DRM_MODE_UNKNOWNCONNECTION:
-+		status = XF86OutputStatusUnknown;
-+		break;
-+	}
-+	return output->status == status;
-+}
-+
-+void sna_mode_discover(struct sna *sna, bool tell)
- {
- 	ScreenPtr screen = xf86ScrnToScreen(sna->scrn);
- 	xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(sna->scrn);
- 	struct drm_mode_card_res res;
--	uint32_t connectors[32];
-+	uint32_t connectors[32], now;
- 	unsigned changed = 0;
- 	unsigned serial;
- 	int i, j;
- 
- 	DBG(("%s()\n", __FUNCTION__));
-+	sna->flags &= ~SNA_REPROBE;
-+
- 	VG_CLEAR(connectors);
- 
- 	memset(&res, 0, sizeof(res));
-@@ -4822,6 +4864,7 @@ void sna_mode_discover(struct sna *sna)
- 	if (serial == 0)
- 		serial = ++sna->mode.serial;
- 
-+	now = GetTimeInMillis();
- 	for (i = 0; i < res.count_connectors; i++) {
- 		DBG(("%s: connector[%d] = %d\n", __FUNCTION__, i, connectors[i]));
- 		for (j = 0; j < sna->mode.num_real_output; j++) {
-@@ -4846,10 +4889,17 @@ void sna_mode_discover(struct sna *sna)
- 		if (sna_output->id == 0)
- 			continue;
- 
--		sna_output->last_detect = 0;
- 		if (sna_output->serial == serial) {
--			if (sna_output_detect(output) != output->status)
--				RROutputChanged(output->randr_output, TRUE);
-+			if (output_check_status(sna, sna_output)) {
-+				DBG(("%s: output %s (id=%d), retained state\n",
-+				     __FUNCTION__, output->name, sna_output->id));
-+				sna_output->last_detect = now;
-+			} else {
-+				DBG(("%s: output %s (id=%d), changed state, reprobing\n",
-+				     __FUNCTION__, output->name, sna_output->id));
-+				sna_output->last_detect = 0;
-+				changed |= 4;
-+			}
- 			continue;
- 		}
- 
-@@ -4861,12 +4911,14 @@ void sna_mode_discover(struct sna *sna)
- 			   "Disabled output %s\n",
- 			   output->name);
- 		sna_output->id = 0;
-+		sna_output->last_detect = 0;
- 		output->crtc = NULL;
- 		RROutputChanged(output->randr_output, TRUE);
- 		changed |= 2;
- 	}
- 
--	if (changed) {
-+	/* Have the list of available outputs been updated? */
-+	if (changed & 3) {
- 		DBG(("%s: outputs changed, broadcasting\n", __FUNCTION__));
- 
- 		sna_mode_set_primary(sna);
-@@ -4881,7 +4933,50 @@ void sna_mode_discover(struct sna *sna)
- 		xf86RandR12TellChanged(screen);
- 	}
- 
--	RRTellChanged(screen);
-+	/* If anything has changed, refresh the RandR information.
-+	 * Note this could recurse once from udevless RRGetInfo() probes,
-+	 * but only once.
-+	 */
-+	if (changed && tell)
-+		RRGetInfo(screen, TRUE);
-+}
-+
-+/* Since we only probe the current mode on startup, we may not have the full
-+ * list of modes available until the user explicitly requests them. Fake a
-+ * hotplug event after a second after starting to fill in any missing modes.
-+ */
-+static CARD32 sna_mode_coldplug(OsTimerPtr timer, CARD32 now, void *data)
-+{
-+	struct sna *sna = data;
-+	ScreenPtr screen = xf86ScrnToScreen(sna->scrn);
-+	xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(sna->scrn);
-+	bool reprobe = false;
-+	int i;
-+
-+	DBG(("%s()\n", __FUNCTION__));
-+
-+	for (i = 0; i < sna->mode.num_real_output; i++) {
-+		xf86OutputPtr output = config->output[i];
-+		struct sna_output *sna_output = to_sna_output(output);
-+
-+		if (sna_output->id == 0)
-+			continue;
-+		if (sna_output->last_detect)
-+			continue;
-+		if (output->status == XF86OutputStatusDisconnected)
-+			continue;
-+
-+		DBG(("%s: output %s connected, needs reprobe\n",
-+		     __FUNCTION__, output->name));
-+		reprobe = true;
-+	}
-+
-+	if (reprobe) {
-+		RRGetInfo(screen, TRUE);
-+		RRTellChanged(screen);
-+	}
-+	free(timer);
-+	return 0;
- }
- 
- static void copy_front(struct sna *sna, PixmapPtr old, PixmapPtr new)
-@@ -6818,6 +6913,7 @@ bool sna_mode_pre_init(ScrnInfoPtr scrn, struct sna *sna)
- 		}
- 	}
- 	sort_config_outputs(sna);
-+	TimerSet(NULL, 0, COLDPLUG_DELAY_MS, sna_mode_coldplug, sna);
- 
- 	sna_setup_provider(scrn);
- 	return scrn->modes != NULL;
-diff --git a/src/sna/sna_driver.c b/src/sna/sna_driver.c
-index 18fc48d..8cbabb0 100644
---- a/src/sna/sna_driver.c
-+++ b/src/sna/sna_driver.c
-@@ -755,7 +755,7 @@ sna_handle_uevents(int fd, void *closure)
- 	if (fstat(sna->kgem.fd, &s))
- 		memset(&s, 0, sizeof(s));
- 
--	do {
-+	while (poll(&pfd, 1, 0) > 0) {
- 		struct udev_device *dev;
- 		dev_t devnum;
- 
-@@ -773,14 +773,14 @@ sna_handle_uevents(int fd, void *closure)
- 		}
- 
- 		udev_device_unref(dev);
--	} while (poll(&pfd, 1, 0) > 0);
-+	}
- 
- 	if (hotplug) {
- 		DBG(("%s: hotplug event (vtSema?=%d)\n",
- 		     __FUNCTION__, sna->scrn->vtSema));
- 
- 		if (sna->scrn->vtSema) {
--			sna_mode_discover(sna);
-+			sna_mode_discover(sna, true);
- 			sna_mode_check(sna);
- 		} else
- 			sna->flags |= SNA_REPROBE;
-@@ -890,8 +890,10 @@ sna_randr_getinfo(ScreenPtr screen, Rotation *rotations)
- {
- 	struct sna *sna = to_sna_from_screen(screen);
- 
-+	DBG(("%s()\n", __FUNCTION__));
-+
- 	if (!sna_uevent_poll(sna))
--		sna_mode_discover(sna);
-+		sna_mode_discover(sna, false);
- 
- 	return sna->mode.rrGetInfo(screen, rotations);
- }
-@@ -1220,8 +1222,7 @@ static Bool sna_enter_vt(VT_FUNC_ARGS_DECL)
- 
- 	if (sna->flags & SNA_REPROBE) {
- 		DBG(("%s: reporting deferred hotplug event\n", __FUNCTION__));
--		sna_mode_discover(sna);
--		sna->flags &= ~SNA_REPROBE;
-+		sna_mode_discover(sna, true);
- 	}
- 
- 	sna_set_desired_mode(sna);
diff --git a/debian/patches/series b/debian/patches/series
index 10fd925..f2224dc 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,3 +1 @@
-sna-check-for-system-memory-contents.diff
-randr.patch
 revert-dpms-fix.patch
diff --git a/debian/patches/sna-check-for-system-memory-contents.diff b/debian/patches/sna-check-for-system-memory-contents.diff
deleted file mode 100644
index 7fbdf1e..0000000
--- a/debian/patches/sna-check-for-system-memory-contents.diff
+++ /dev/null
@@ -1,35 +0,0 @@
-commit 78f7451886f0a33df717c57fc1a079ee7e6f221e
-Author: Chris Wilson <chris@chris-wilson.co.uk>
-Date:   Thu Aug 20 10:43:05 2015 +0100
-
-    sna: Check for system memory contents when looking for empty sources
-    
-    Fixes a regression from
-    commit 3f128867d957e30690218404337b00bb327e647b
-    Author: Chris Wilson <chris@chris-wilson.co.uk>
-    Date:   Fri Aug 7 15:19:17 2015 +0100
-    
-        sna: Skip a no-op copy
-    
-    that forgot that we can flush damage but still have valid contents to
-    copy from.
-    
-    Reported-by: Timo Aaltonen <tjaalton@ubuntu.com>
-    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-
-diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
-index c624d9e..937d6a8 100644
---- a/src/sna/sna_accel.c
-+++ b/src/sna/sna_accel.c
-@@ -6446,8 +6446,9 @@ sna_copy_boxes(DrawablePtr src, DrawablePtr dst, GCPtr gc,
- 	assert(region_num_rects(region));
- 
- 	if (src_priv &&
--	    src_priv->gpu_damage == NULL &&
--	    src_priv->cpu_damage == NULL) {
-+	    src_priv->gpu_bo == NULL &&
-+	    src_priv->cpu_bo == NULL &&
-+	    src_priv->ptr == NULL) {
- 		/* Rare but still happens, nothing to copy */
- 		DBG(("%s: src pixmap=%ld is empty\n",
- 		     __FUNCTION__, src_pixmap->drawable.serialNumber));

commit ee1579f75e8bd221d6aff9c5e99da678cc981d4e
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Tue Oct 27 19:19:02 2015 +0200

    release to experimental

diff --git a/debian/changelog b/debian/changelog
index f88f90e..9bcf66e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-xserver-xorg-video-intel (2:2.99.917+git20151019-1~exp1) UNRELEASED; urgency=medium
+xserver-xorg-video-intel (2:2.99.917+git20151019-1~exp1) experimental; urgency=medium
 
   * New upstream snapshot.
   * rules: Fix valgrind-enabling check.
@@ -7,7 +7,7 @@ xserver-xorg-video-intel (2:2.99.917+git20151019-1~exp1) UNRELEASED; urgency=med
     those before source build (copied from libdrm).
   * patches: Dropped, all upstream.
 
- -- Timo Aaltonen <tjaalton@debian.org>  Tue, 13 Jan 2015 12:34:17 +0200
+ -- Timo Aaltonen <tjaalton@debian.org>  Tue, 27 Oct 2015 19:07:45 +0200
 
 xserver-xorg-video-intel (2:2.99.917-2) unstable; urgency=medium
 

commit a66d77ee7ffcefe24b6154bfe881be49bcb802bb
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Thu Oct 22 15:13:50 2015 +0300

    patches: Dropped, all upstream.

diff --git a/debian/changelog b/debian/changelog
index 31a11a7..f88f90e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,10 +1,11 @@
-xserver-xorg-video-intel (2:2.99.917+git20150808-1~exp1) UNRELEASED; urgency=medium
+xserver-xorg-video-intel (2:2.99.917+git20151019-1~exp1) UNRELEASED; urgency=medium
 
   * New upstream snapshot.
   * rules: Fix valgrind-enabling check.
   * README.source: Mention that dpkg-source complains about symlinks
     which are real files on the tarball, and add a command to clean
     those before source build (copied from libdrm).
+  * patches: Dropped, all upstream.
 
  -- Timo Aaltonen <tjaalton@debian.org>  Tue, 13 Jan 2015 12:34:17 +0200
 
diff --git a/debian/patches/fix-sna-fstat-include.patch b/debian/patches/fix-sna-fstat-include.patch
deleted file mode 100644
index 11064d7..0000000
--- a/debian/patches/fix-sna-fstat-include.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-commit 12af8a575d1518d40416f83195049157c3a062a5
-Author: Chris Wilson <chris@chris-wilson.co.uk>
-Date:   Tue Feb 24 15:25:40 2015 +0000
-
-    sna: udev integration depends on fstat and sys/stat.h
-    
-    src/sna/sna_driver.c: In function 'sna_handle_uevents':
-    src/sna/sna_driver.c:759:2: error: implicit declaration of function 'fstat' [-Werror=implicit-function-declaration]
-    
-    Also take the opportunity to include udev support in the configure
-    summary.
-    
-    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-
-diff --git a/configure.ac b/configure.ac
-index 7476e2b..de3a4b3 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -197,11 +197,15 @@ AC_ARG_ENABLE(udev,
- 
- if test "x$UDEV" != "xno"; then
- 	PKG_CHECK_MODULES(UDEV, [libudev], [udev="yes"], [udev="no"])
-+	AC_CHECK_HEADERS([sys/stat.h], [], [udev="no"])
- 	if test "x$UDEV" = "xyes" -a "x$udev" != "xyes"; then
- 		AC_MSG_ERROR([udev support requested but not found (libudev)])
- 	fi
- 	if test "x$udev" = "xyes"; then
- 		AC_DEFINE(HAVE_UDEV,1,[Enable udev-based monitor hotplug detection])
-+		udev_msg=" yes"
-+	else
-+		udev_msg=" no"
- 	fi
- fi
- 
-@@ -911,6 +915,7 @@ echo "  Support for Kernel Mode Setting? $KMS"
- echo "  Support for legacy User Mode Setting (for i810)? $UMS"
- echo "  Support for Direct Rendering Infrastructure:$dri_msg"
- echo "  Support for Xv motion compensation (XvMC and libXvMC):$xvmc_msg"
-+echo "  Support for display hotplug notifications (udev):$udev_msg"
- echo "  Build additional tools and utilities?$tools_msg"
- if test -n "$xp_msg"; then
- echo "  Experimental support:$xp_msg"
-diff --git a/src/sna/sna_driver.c b/src/sna/sna_driver.c
-index 8c0d0b5..bc20ef0 100644
---- a/src/sna/sna_driver.c
-+++ b/src/sna/sna_driver.c
-@@ -740,6 +740,8 @@ sna_wakeup_handler(WAKEUPHANDLER_ARGS_DECL)
- }
- 
- #if HAVE_UDEV
-+#include <sys/stat.h>
-+
- static void
- sna_handle_uevents(int fd, void *closure)
- {
diff --git a/debian/patches/fix-uxa-fstat-include.patch b/debian/patches/fix-uxa-fstat-include.patch
deleted file mode 100644
index b99021d..0000000
--- a/debian/patches/fix-uxa-fstat-include.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-commit 369ceec0e4910ba2c37736a59c55c0d6c26433bf
-Author: Chris Wilson <chris@chris-wilson.co.uk>
-Date:   Tue Feb 24 15:25:40 2015 +0000
-
-    uxa: udev integration depends on fstat and sys/stat.h
-    
-    src/uxa/intel_driver.c: In function 'I830HandleUEvents':
-    src/uxa/intel_driver.c:738:14: error: storage size of 's' isn't known
-    src/uxa/intel_driver.c:746:2: error: implicit declaration of function 'fstat' [-Werror=implicit-function-declaration]
-    
-    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-
-diff --git a/src/uxa/intel_driver.c b/src/uxa/intel_driver.c
-index c554124..6e64b8c 100644
---- a/src/uxa/intel_driver.c
-+++ b/src/uxa/intel_driver.c
-@@ -728,6 +728,8 @@ intel_flush_callback(CallbackListPtr *list,
- }
- 
- #if HAVE_UDEV
-+#include <sys/stat.h>
-+
- static void
- I830HandleUEvents(int fd, void *closure)
- {
diff --git a/debian/patches/fix-yuv-to-rgb-shared-on-intel-gen8.patch b/debian/patches/fix-yuv-to-rgb-shared-on-intel-gen8.patch
deleted file mode 100644
index 6aa4db1..0000000
--- a/debian/patches/fix-yuv-to-rgb-shared-on-intel-gen8.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From b6029105e404c9a7f7cdd230012cd5063c824ed4 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= <ville.syrjala@linux.intel.com>
-Date: Mon, 30 Mar 2015 16:51:29 +0300
-Subject: [PATCH] gen8: Fix the YUV->RGB shader
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
----
- src/render_program/exa_wm_yuv_rgb.g8a | 4 ++--
- src/render_program/exa_wm_yuv_rgb.g8b | 2 +-
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/src/render_program/exa_wm_yuv_rgb.g8a b/src/render_program/exa_wm_yuv_rgb.g8a
-index 7def093..34973ba 100644
---- a/src/render_program/exa_wm_yuv_rgb.g8a
-+++ b/src/render_program/exa_wm_yuv_rgb.g8a
-@@ -76,7 +76,7 @@ add (16)    Cbn<1>F		Cb<8,8,1>F	-0.501961F  { compr align1 };
-     /* 
-      * R = Y + Cr * 1.596
-      */
--mov (8)    acc0<1>F		Yn<8,8,1>F		    { compr align1 };
-+mov (8)    acc0<1>F		Yn_01<8,8,1>F		    { compr align1 };
- mac.sat(8) src_sample_r_01<1>F	Crn_01<8,8,1>F	1.596F	    { compr align1 };
-      
- mov (8)    acc0<1>F		Yn_23<8,8,1>F		    { compr align1 };
-@@ -84,7 +84,7 @@ mac.sat(8) src_sample_r_23<1>F	Crn_23<8,8,1>F	1.596F	    { compr align1 };
-     /*
-      * G = Crn * -0.813 + Cbn * -0.392 + Y
-      */
--mov (8)    acc0<1>F		Yn_23<8,8,1>F		    { compr align1 };
-+mov (8)    acc0<1>F		Yn_01<8,8,1>F		    { compr align1 };
- mac (8)    acc0<1>F		Crn_01<8,8,1>F    	-0.813F	    { compr align1 };
- mac.sat(8) src_sample_g_01<1>F	Cbn_01<8,8,1>F    	-0.392F	    { compr align1 };
- 
-diff --git a/src/render_program/exa_wm_yuv_rgb.g8b b/src/render_program/exa_wm_yuv_rgb.g8b
-index 4494953..2cd6fc4 100644
---- a/src/render_program/exa_wm_yuv_rgb.g8b
-+++ b/src/render_program/exa_wm_yuv_rgb.g8b
-@@ -6,7 +6,7 @@
-    { 0x80600048, 0x21c03ae8, 0x3e8d02c0, 0x3fcc49ba },
-    { 0x00600001, 0x24003ae0, 0x008d0320, 0x00000000 },
-    { 0x80600048, 0x21e03ae8, 0x3e8d02e0, 0x3fcc49ba },
--   { 0x00600001, 0x24003ae0, 0x008d0320, 0x00000000 },
-+   { 0x00600001, 0x24003ae0, 0x008d0300, 0x00000000 },
-    { 0x00600048, 0x24003ae0, 0x3e8d02c0, 0xbf5020c5 },
-    { 0x80600048, 0x22003ae8, 0x3e8d0340, 0xbec8b439 },
-    { 0x00600001, 0x24003ae0, 0x008d0320, 0x00000000 },
--- 
-2.0.5
diff --git a/debian/patches/series b/debian/patches/series
index 69043b1..a82d1b4 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,3 +1 @@
-fix-yuv-to-rgb-shared-on-intel-gen8.patch
-fix-sna-fstat-include.patch
-fix-uxa-fstat-include.patch
+#placeholder

commit ef859c807a4bfad7c8a01a1d63f354f3ef310db5
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Oct 19 13:07:13 2015 +0100

    sna: Use the new context param for report GTT size
    
    Since get_aperture_ioctl reports the global GTT size and this may
    differ with the per-process GTT size used by execbuffer, query the
    per-process GTT size instead.
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

diff --git a/src/sna/kgem.c b/src/sna/kgem.c
index bbe2092..156ebc9 100644
--- a/src/sna/kgem.c
+++ b/src/sna/kgem.c
@@ -1822,12 +1822,50 @@ no_context_switch(struct kgem *kgem, int new_mode)
 	(void)new_mode;
 }
 
-void kgem_init(struct kgem *kgem, int fd, struct pci_device *dev, unsigned gen)
+static uint64_t get_gtt_size(int fd)
 {
 	struct drm_i915_gem_get_aperture aperture;
+	struct local_i915_gem_context_param {
+		uint32_t context;
+		uint32_t size;
+		uint64_t param;
+#define LOCAL_CONTEXT_PARAM_BAN_PERIOD	0x1
+#define LOCAL_CONTEXT_PARAM_NO_ZEROMAP	0x2
+#define LOCAL_CONTEXT_PARAM_GTT_SIZE	0x3
+		uint64_t value;
+	} p;
+#define LOCAL_I915_GEM_CONTEXT_GETPARAM       0x34
+#define LOCAL_IOCTL_I915_GEM_CONTEXT_GETPARAM DRM_IOWR (DRM_COMMAND_BASE + LOCAL_I915_GEM_CONTEXT_GETPARAM, struct local_i915_gem_context_param)
+
+	memset(&aperture, 0, sizeof(aperture));
+
+	memset(&p, 0, sizeof(p));
+	p.param = LOCAL_CONTEXT_PARAM_GTT_SIZE;
+	if (drmIoctl(fd, LOCAL_IOCTL_I915_GEM_CONTEXT_GETPARAM, &p) == 0)
+		aperture.aper_size = p.value;
+	if (aperture.aper_size == 0)
+		(void)drmIoctl(fd, DRM_IOCTL_I915_GEM_GET_APERTURE, &aperture);
+	if (aperture.aper_size == 0)
+		aperture.aper_size = 64*1024*1024;
+
+	DBG(("%s: aperture size %lld, available now %lld\n",
+	     __FUNCTION__,
+	     (long long)aperture.aper_size,
+	     (long long)aperture.aper_available_size));
+
+	/* clamp aperture to uint32_t for simplicity */
+	if (aperture.aper_size > 0xc0000000)
+		aperture.aper_size = 0xc0000000;
+
+	return aperture.aper_size;
+}
+
+void kgem_init(struct kgem *kgem, int fd, struct pci_device *dev, unsigned gen)
+{
 	size_t totalram;
 	unsigned half_gpu_max;
 	unsigned int i, j;
+	uint64_t gtt_size;
 
 	DBG(("%s: fd=%d, gen=%d\n", __FUNCTION__, fd, gen));
 
@@ -1979,23 +2017,10 @@ void kgem_init(struct kgem *kgem, int fd, struct pci_device *dev, unsigned gen)
 	     !DBG_NO_CPU && (kgem->has_llc | kgem->has_userptr | kgem->has_caching),
 	     kgem->has_llc, kgem->has_caching, kgem->has_userptr));
 
-	VG_CLEAR(aperture);
-	aperture.aper_size = 0;
-	(void)do_ioctl(fd, DRM_IOCTL_I915_GEM_GET_APERTURE, &aperture);
-	if (aperture.aper_size == 0)
-		aperture.aper_size = 64*1024*1024;
-
-	DBG(("%s: aperture size %lld, available now %lld\n",
-	     __FUNCTION__,
-	     (long long)aperture.aper_size,
-	     (long long)aperture.aper_available_size));
-
-	/* clamp aperture to uint32_t for simplicity */
-	if (aperture.aper_size > 0xc0000000)
-		aperture.aper_size = 0xc0000000;
-	kgem->aperture_total = aperture.aper_size;
-	kgem->aperture_high = aperture.aper_size * 3/4;
-	kgem->aperture_low = aperture.aper_size * 1/3;
+	gtt_size = get_gtt_size(fd);
+	kgem->aperture_total = gtt_size;
+	kgem->aperture_high = gtt_size * 3/4;
+	kgem->aperture_low = gtt_size * 1/3;
 	if (gen < 033) {
 		/* Severe alignment penalties */
 		kgem->aperture_high /= 2;
@@ -2008,9 +2033,8 @@ void kgem_init(struct kgem *kgem, int fd, struct pci_device *dev, unsigned gen)
 	kgem->aperture_mappable = 256 * 1024 * 1024;
 	if (dev != NULL)
 		kgem->aperture_mappable = agp_aperture_size(dev, gen);
-	if (kgem->aperture_mappable == 0 ||
-	    kgem->aperture_mappable > aperture.aper_size)
-		kgem->aperture_mappable = aperture.aper_size;
+	if (kgem->aperture_mappable == 0 || kgem->aperture_mappable > gtt_size)
+		kgem->aperture_mappable = gtt_size;
 	DBG(("%s: aperture mappable=%d [%d MiB]\n", __FUNCTION__,
 	     kgem->aperture_mappable, kgem->aperture_mappable / (1024*1024)));
 

commit 3656bcf01e78554aaeafc11ecebb0caf7dd12713
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Oct 19 09:34:43 2015 +0100

    sna: Manually clear the GPU bo needs_flush flag after doing an explicit flush
    
    The kernel often gets confused and fails to flush the bo itself, so lets
    just pretend it worked.
    
    Reported-by: Jiri Slaby <jirislaby@gmail.com>
    References: https://bugs.freedesktop.org/show_bug.cgi?id=70461#c127
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

diff --git a/src/sna/kgem.c b/src/sna/kgem.c
index bb1f70b..bbe2092 100644
--- a/src/sna/kgem.c
+++ b/src/sna/kgem.c
@@ -6752,6 +6752,7 @@ void *kgem_bo_map(struct kgem *kgem, struct kgem_bo *bo)
 			DBG(("%s: sync: GPU hang detected\n", __FUNCTION__));
 			kgem_throttle(kgem);
 		}
+		bo->needs_flush = false;
 		kgem_bo_retire(kgem, bo);
 		bo->domain = DOMAIN_GTT;
 		bo->gtt_dirty = true;
@@ -6964,6 +6965,7 @@ void kgem_bo_sync__cpu(struct kgem *kgem, struct kgem_bo *bo)
 			DBG(("%s: sync: GPU hang detected\n", __FUNCTION__));
 			kgem_throttle(kgem);
 		}
+		bo->needs_flush = false;
 		kgem_bo_retire(kgem, bo);
 		bo->domain = DOMAIN_CPU;
 	}
@@ -7004,6 +7006,7 @@ void kgem_bo_sync__cpu_full(struct kgem *kgem, struct kgem_bo *bo, bool write)
 			kgem_throttle(kgem);
 		}
 		if (write) {
+			bo->needs_flush = false;
 			kgem_bo_retire(kgem, bo);
 			bo->domain = DOMAIN_CPU;
 		} else {
@@ -7040,6 +7043,7 @@ void kgem_bo_sync__gtt(struct kgem *kgem, struct kgem_bo *bo)
 			DBG(("%s: sync: GPU hang detected\n", __FUNCTION__));
 			kgem_throttle(kgem);
 		}
+		bo->needs_flush = false;
 		kgem_bo_retire(kgem, bo);
 		bo->domain = DOMAIN_GTT;
 		bo->gtt_dirty = true;

commit 6861391ff34eff423974a73c46cf0b186a6cb335
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 13 12:22:46 2015 +0100

    sna: Make sure that cached upload proxies are marked as all-damaged
    
    It should only be the case that we create the upload proxy in this case,
    but it ensures that the code remains self-consistent if we force the
    all-damage reduction.
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

diff --git a/src/sna/sna_render.c b/src/sna/sna_render.c
index 89267a3..d8b7756 100644
--- a/src/sna/sna_render.c
+++ b/src/sna/sna_render.c
@@ -553,6 +553,7 @@ static struct kgem_bo *upload(struct sna *sna,
 			assert(priv->gpu_damage == NULL);
 			assert(priv->gpu_bo == NULL);
 			assert(bo->proxy != NULL);
+			sna_damage_all(&priv->cpu_damage, pixmap);
 			kgem_proxy_bo_attach(bo, &priv->gpu_bo);
 		}
 	}
@@ -1261,6 +1262,7 @@ sna_render_picture_extract(struct sna *sna,
 			assert(priv->gpu_damage == NULL);
 			assert(priv->gpu_bo == NULL);
 			assert(bo->proxy != NULL);
+			sna_damage_all(&priv->cpu_damage, pixmap);
 			kgem_proxy_bo_attach(bo, &priv->gpu_bo);
 		}
 	}

commit 6224814b85e8aed75854192ec27aa06163e76d94
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 13 12:20:33 2015 +0100

    sna: Handle proxy objects in undo assertions
    
    Note that we may try to clear a batch containing a proxy object, in
    which case the proxy has a dummy exec entry - so we need to be careful
    in making our assertions.
    
    Reported-by: Laszlo Valko <valko@linux.karinthy.hu>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92447
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

diff --git a/src/sna/kgem.c b/src/sna/kgem.c
index b975bfc..bb1f70b 100644
--- a/src/sna/kgem.c
+++ b/src/sna/kgem.c
@@ -2807,7 +2807,7 @@ void kgem_bo_undo(struct kgem *kgem, struct kgem_bo *bo)
 	DBG(("%s: only handle in batch, discarding last operations for handle=%d\n",
 	     __FUNCTION__, bo->handle));
 
-	assert(bo->exec == &kgem->exec[0]);
+	assert(bo->exec == &_kgem_dummy_exec || bo->exec == &kgem->exec[0]);
 	assert(kgem->exec[0].handle == bo->handle);
 	assert(RQ(bo->rq) == kgem->next_request);
 
@@ -2835,16 +2835,23 @@ void kgem_bo_pair_undo(struct kgem *kgem, struct kgem_bo *a, struct kgem_bo *b)
 
 	if (a == NULL || b == NULL)
 		return;
+	assert(a != b);
 	if (a->exec == NULL || b->exec == NULL)
 		return;
 
-	DBG(("%s: only handles in batch, discarding last operations for handle=%d and handle=%d\n",
-	     __FUNCTION__, a->handle, b->handle));
+	DBG(("%s: only handles in batch, discarding last operations for handle=%d (index=%d) and handle=%d (index=%d)\n",
+	     __FUNCTION__,
+	     a->handle, a->proxy ? -1 : a->exec - kgem->exec,
+	     b->handle, b->proxy ? -1 : b->exec - kgem->exec));
 
-	assert(a->exec == &kgem->exec[0] || a->exec == &kgem->exec[1]);
+	assert(a->exec == &_kgem_dummy_exec ||
+	       a->exec == &kgem->exec[0] ||
+	       a->exec == &kgem->exec[1]);
 	assert(a->handle == kgem->exec[0].handle || a->handle == kgem->exec[1].handle);
 	assert(RQ(a->rq) == kgem->next_request);
-	assert(b->exec == &kgem->exec[0] || b->exec == &kgem->exec[1]);
+	assert(b->exec == &_kgem_dummy_exec ||
+	       b->exec == &kgem->exec[0] ||
+	       b->exec == &kgem->exec[1]);
 	assert(b->handle == kgem->exec[0].handle || b->handle == kgem->exec[1].handle);
 	assert(RQ(b->rq) == kgem->next_request);
 

commit df72bc57610bb2f58eec9801820ea11628b244eb
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 9 15:40:58 2015 +0100

    sna: Avoid truncating the cursor when scaling up
    
    The affine_blt walks the destination image sampling from the source, so
    we need to walk all the output pixels and not the source size.
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index 554c270..a617218 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -5405,14 +5405,14 @@ static struct sna_cursor *__sna_get_cursor(struct sna *sna, xf86CrtcPtr crtc)
 			if (transformed) {
 				affine_blt(image, cursor->image, 32,
 					   0, 0, width, height, size * 4,
-					   0, 0, width, height, size * 4,
+					   0, 0, size, size, size * 4,
 					   &to_sna_crtc(crtc)->cursor_to_fb);
 				image = cursor->image;
 			}
 		} else if (transformed) {
 			affine_blt(argb, cursor->image, 32,
 				   0, 0, width, height, width * 4,
-				   0, 0, width, height, size * 4,
+				   0, 0, size, size, size * 4,
 				   &to_sna_crtc(crtc)->cursor_to_fb);
 			image = cursor->image;
 		} else

commit 5793183c8247b42baa3c4577a3d84d554d589160
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 9 15:17:58 2015 +0100

    sna: Compute rotation cursor transformation
    
    A confusion over the use of marking when we need to compute a
    transformed cursor image using pixman version when we need to compute
    transformed cursor coordinates meant that we failed to compute the
    required transformation after simply rotating the monitor.
    
    Should fix the regression from
    commit bbbcc4101ca01a5c8bec5169e47d703dd742494b
    Author: Chris Wilson <chris@chris-wilson.co.uk>
    Date:   Fri Sep 18 12:17:07 2015 +0100
    
        sna: Apply cursor hotspot transformation
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    References: https://bugs.archlinux.org/task/46606

diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index a763d18..554c270 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -5340,17 +5340,17 @@ static struct sna_cursor *__sna_get_cursor(struct sna *sna, xf86CrtcPtr crtc)
 
 		pixman_f_transform_bounds(&crtc->f_crtc_to_framebuffer, &box);
 		size = __cursor_size(box.x2 - box.x1, box.y2 - box.y1);
-
-		RRTransformCompute(0, 0,
-				   sna->cursor.ref->bits->width,
-				   sna->cursor.ref->bits->height,
-				   crtc->rotation, &crtc->transform,
-				   &cursor_to_fb,
-				   &to_sna_crtc(crtc)->cursor_to_fb,
-				   &to_sna_crtc(crtc)->fb_to_cursor);
 	} else
 		size = sna->cursor.size;
 
+	if (crtc->transform_in_use)
+                RRTransformCompute(0, 0, size, size,
+                                   crtc->rotation,
+                                   crtc->transformPresent ? &crtc->transform : NULL,
+                                   &cursor_to_fb,
+                                   &to_sna_crtc(crtc)->cursor_to_fb,
+                                   &to_sna_crtc(crtc)->fb_to_cursor);
+
 	cursor = to_sna_crtc(crtc)->cursor;
 	if (cursor && cursor->alloc < 4*size*size)
 		cursor = NULL;
@@ -5726,18 +5726,18 @@ sna_set_cursor_position(ScrnInfoPtr scrn, int x, int y)
 			int yhot = sna->cursor.ref->bits->yhot;
 			struct pict_f_vector v, hot;
 
-			v.v[0] = (x + xhot) + 0.5;
-			v.v[1] = (y + yhot) + 0.5;
-			v.v[2] = 1;
+			v.v[0] = x + xhot + .5;
+			v.v[1] = y + yhot + .5;
+			v.v[2] = 1.;
 			pixman_f_transform_point(&crtc->f_framebuffer_to_crtc, &v);
 
-			hot.v[0] = xhot + .5;
-			hot.v[1] = yhot + .5;
+			hot.v[0] = xhot;
+			hot.v[1] = yhot;
 			hot.v[2] = 1.;
 			pixman_f_transform_point(&sna_crtc->fb_to_cursor, &hot);
 
-			arg.x = floor(v.v[0]) - floor(hot.v[0]);
-			arg.y = floor(v.v[1]) - floor(hot.v[1]);
+			arg.x = floor(v.v[0] - hot.v[0]);
+			arg.y = floor(v.v[1] - hot.v[1]);
 		} else {
 			arg.x = x - crtc->x;
 			arg.y = y - crtc->y;

commit 4e668dd19ca402321091311fc6c2dd5cd9c28f23
Author: Robert Ancell <robert.ancell@canonical.com>
Date:   Fri Oct 2 10:43:10 2015 +0100

    uxa: Add missing const to string to stop compiler warning

diff --git a/src/uxa/intel_hwmc.c b/src/uxa/intel_hwmc.c
index 829cb8e..7854060 100644
--- a/src/uxa/intel_hwmc.c
+++ b/src/uxa/intel_hwmc.c
@@ -193,7 +193,7 @@ Bool intel_xvmc_adaptor_init(ScreenPtr pScreen)
 	intel_screen_private *intel = intel_get_screen_private(scrn);
 	struct pci_device *pci;
 	static XF86MCAdaptorRec *pAdapt;
-	char *name;


Reply to: