xserver-xorg-video-intel: Changes to 'ubuntu'
ChangeLog |69207 ---------
Makefile.am | 4
NEWS | 97
configure.ac | 534
debian/changelog | 28
debian/control | 10
debian/patches/0001-sna-Make-sure-the-frontbuffer-exists-before-doing-pi.patch | 60
debian/patches/Check-for-struct-sysinfo-as-well-as-sys-sysinfo.h.patch | 51
debian/patches/Link-the-driver-against-pixman.patch | 38
debian/patches/check-hosted-initialisation-succeeds.patch | 26
debian/patches/disable-unneeded-functions-when-hosted.patch | 261
debian/patches/dont-copy-fbcon-if-hosted.patch | 26
debian/patches/fix-spelling-of-caching.patch | 180
debian/patches/more-modesetting-disablement-when-hosted.patch | 235
debian/patches/series | 10
debian/patches/unwrap-legacy-modesetting-when-hosted.patch | 57
debian/patches/xmir.patch | 220
debian/rules | 3
debian/source/format | 1
debian/upstream.changelog |69797 ++++++++++
man/intel.man | 34
src/Makefile.am | 2
src/compat-api.h | 4
src/intel_device.c | 90
src/intel_driver.h | 4
src/intel_module.c | 36
src/intel_options.c | 5
src/intel_options.h | 4
src/legacy/Makefile.am | 2
src/legacy/i810/i810_accel.c | 1
src/legacy/i810/i810_cursor.c | 1
src/legacy/i810/i810_dga.c | 1
src/legacy/i810/i810_dri.c | 1
src/legacy/i810/i810_driver.c | 1
src/legacy/i810/i810_hwmc.c | 1
src/legacy/i810/i810_memory.c | 1
src/legacy/i810/i810_video.c | 1
src/legacy/i810/i810_wmark.c | 1
src/legacy/i810/i810_xaa.c | 1
src/sna/Makefile.am | 1
src/sna/compiler.h | 6
src/sna/fb/fbclip.c | 2
src/sna/fb/fbclip.h | 7
src/sna/fb/fbpict.h | 1
src/sna/gen2_render.c | 3
src/sna/gen3_render.c | 61
src/sna/gen4_render.c | 45
src/sna/gen4_vertex.c | 85
src/sna/gen5_render.c | 39
src/sna/gen6_render.c | 152
src/sna/gen7_render.c | 188
src/sna/kgem.c | 603
src/sna/kgem.h | 30
src/sna/sna.h | 104
src/sna/sna_accel.c | 1180
src/sna/sna_acpi.c | 223
src/sna/sna_blt.c | 8
src/sna/sna_composite.c | 264
src/sna/sna_damage.c | 2
src/sna/sna_damage.h | 13
src/sna/sna_display.c | 754
src/sna/sna_display_fake.c | 199
src/sna/sna_dri.c | 411
src/sna/sna_driver.c | 234
src/sna/sna_glyphs.c | 527
src/sna/sna_io.c | 136
src/sna/sna_render.c | 107
src/sna/sna_render.h | 2
src/sna/sna_stream.c | 4
src/sna/sna_threads.c | 11
src/sna/sna_tiling.c | 30
src/sna/sna_trapezoids.c | 65
src/sna/sna_vertex.c | 4
src/sna/sna_video.c | 64
src/sna/sna_video.h | 40
src/sna/sna_video_overlay.c | 84
src/sna/sna_video_sprite.c | 122
src/sna/sna_video_textured.c | 11
src/uxa/i830_3d.c | 1
src/uxa/i830_render.c | 1
src/uxa/i915_3d.c | 1
src/uxa/i915_render.c | 1
src/uxa/i915_video.c | 1
src/uxa/i965_reg.h | 27
src/uxa/i965_render.c | 1
src/uxa/i965_video.c | 1
src/uxa/intel.h | 2
src/uxa/intel_batchbuffer.c | 1
src/uxa/intel_display.c | 19
src/uxa/intel_dri.c | 10
src/uxa/intel_driver.c | 6
src/uxa/intel_glamor.c | 1
src/uxa/intel_memory.c | 1
src/uxa/intel_uxa.c | 1
src/uxa/intel_video.c | 8
test/.gitignore | 3
test/Makefile.am | 15
test/dri2-test.c | 234
test/virtual.conf | 36
tools/.gitignore | 1
tools/Makefile.am | 44
tools/intel-virtual-output.man | 27
tools/virtual.c | 2727
103 files changed, 77570 insertions(+), 72458 deletions(-)
New commits:
commit f15cb10e5ae4d5885ea241097ae543b7b3dafcdd
Author: Timo Aaltonen <tjaalton@ubuntu.com>
Date: Tue Oct 1 16:24:30 2013 +0300
xmir.patch: Refresh.
diff --git a/debian/changelog b/debian/changelog
index 37bcfe9..cebe397 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -3,6 +3,7 @@ xserver-xorg-video-intel (2:2.99.903-0ubuntu1) UNRELEASED; urgency=low
* Merge from unreleased debian git
* Drop patches that were from upstream.
* source: Revert to source format 1.0.
+ * xmir.patch: Refresh.
-- Timo Aaltonen <tjaalton@ubuntu.com> Tue, 01 Oct 2013 16:18:05 +0300
diff --git a/debian/patches/xmir.patch b/debian/patches/xmir.patch
index 9b8f7e3..3636e58 100644
--- a/debian/patches/xmir.patch
+++ b/debian/patches/xmir.patch
@@ -26,10 +26,10 @@ index b0781ca..126bde2 100644
$(NULL)
diff --git a/src/intel_device.c b/src/intel_device.c
-index b3926df..710348e 100644
+index 92472c5..2dd1625 100644
--- a/src/intel_device.c
+++ b/src/intel_device.c
-@@ -144,10 +144,34 @@ static int fd_set_nonblock(int fd)
+@@ -146,10 +146,34 @@ static int fd_set_nonblock(int fd)
return fd;
}
@@ -107,10 +107,10 @@ index 0000000..2e3c85a
+
+#endif /* INTEL_XMIR_H */
diff --git a/src/sna/Makefile.am b/src/sna/Makefile.am
-index 5d5417e..1c5dda0 100644
+index 030869d..5cf1cbf 100644
--- a/src/sna/Makefile.am
+++ b/src/sna/Makefile.am
-@@ -75,6 +75,7 @@ libsna_la_SOURCES = \
+@@ -76,6 +76,7 @@ libsna_la_SOURCES = \
sna_video_overlay.c \
sna_video_sprite.c \
sna_video_textured.c \
@@ -118,56 +118,11 @@ index 5d5417e..1c5dda0 100644
gen2_render.c \
gen2_render.h \
gen3_render.c \
-diff --git a/src/sna/kgem.c b/src/sna/kgem.c
-index e001b01..323fe39 100644
---- a/src/sna/kgem.c
-+++ b/src/sna/kgem.c
-@@ -168,7 +168,9 @@ struct local_i915_gem_caching {
- };
-
- #define LOCAL_I915_GEM_SET_CACHING 0x2f
-+#define LOCAL_I915_GEM_GET_CACHING 0x30
- #define LOCAL_IOCTL_I915_GEM_SET_CACHING DRM_IOW(DRM_COMMAND_BASE + LOCAL_I915_GEM_SET_CACHING, struct local_i915_gem_caching)
-+#define LOCAL_IOCTL_I915_GEM_GET_CACHING DRM_IOWR(DRM_COMMAND_BASE + LOCAL_I915_GEM_GET_CACHING, struct local_i915_gem_caching)
-
- struct kgem_buffer {
- struct kgem_bo base;
-@@ -454,6 +456,18 @@ bool __kgem_busy(struct kgem *kgem, int handle)
- return busy.busy;
- }
-
-+int __kgem_bo_get_caching(struct kgem *kgem, struct kgem_bo *bo)
-+{
-+ struct local_i915_gem_caching arg;
-+
-+ VG_CLEAR(arg);
-+ arg.handle = bo->handle;
-+ arg.caching = kgem->has_llc;
-+ (void)drmIoctl(kgem->fd, LOCAL_IOCTL_I915_GEM_GET_CACHING, &arg);
-+
-+ return arg.caching;
-+}
-+
- static void kgem_bo_retire(struct kgem *kgem, struct kgem_bo *bo)
- {
- DBG(("%s: retiring bo handle=%d (needed flush? %d), rq? %d [busy?=%d]\n",
-diff --git a/src/sna/kgem.h b/src/sna/kgem.h
-index f29f81a..44da0dc 100644
---- a/src/sna/kgem.h
-+++ b/src/sna/kgem.h
-@@ -602,6 +602,7 @@ static inline bool kgem_bo_is_snoop(struct kgem_bo *bo)
-
- void kgem_bo_undo(struct kgem *kgem, struct kgem_bo *bo);
-
-+int __kgem_bo_get_caching(struct kgem *kgem, struct kgem_bo *bo);
- bool __kgem_busy(struct kgem *kgem, int handle);
-
- static inline void kgem_bo_mark_busy(struct kgem_bo *bo, int ring)
diff --git a/src/sna/sna.h b/src/sna/sna.h
-index c47a8ab..1e74d3b 100644
+index f7c5315..494baa8 100644
--- a/src/sna/sna.h
+++ b/src/sna/sna.h
-@@ -288,6 +288,7 @@ struct sna {
+@@ -290,6 +290,7 @@ struct sna {
EntityInfoPtr pEnt;
struct pci_device *PciInfo;
const struct intel_device_info *info;
@@ -175,27 +130,9 @@ index c47a8ab..1e74d3b 100644
ScreenBlockHandlerProcPtr BlockHandler;
ScreenWakeupHandlerProcPtr WakeupHandler;
-@@ -425,6 +426,17 @@ CARD32 sna_render_format_for_depth(int depth);
-
- void sna_debug_flush(struct sna *sna);
-
-+static inline void
-+get_window_deltas(PixmapPtr pixmap, int16_t *x, int16_t *y)
-+{
-+#ifdef COMPOSITE
-+ *x = -pixmap->screen_x;
-+ *y = -pixmap->screen_y;
-+#else
-+ *x = *y = 0;
-+#endif
-+}
-+
- static inline bool
- get_drawable_deltas(DrawablePtr drawable, PixmapPtr pixmap, int16_t *x, int16_t *y)
- {
-@@ -946,4 +958,18 @@ void sna_image_composite(pixman_op_t op,
- uint16_t width,
- uint16_t height);
+@@ -988,4 +989,18 @@ static inline void sigtrap_put(void)
+ sigtrap_assert();
+ }
+/* sna_xmir.c */
+
@@ -213,11 +150,11 @@ index c47a8ab..1e74d3b 100644
+
#endif /* _SNA_H */
diff --git a/src/sna/sna_dri.c b/src/sna/sna_dri.c
-index 0405186..ddb321c 100644
+index 00a65a9..88d0869 100644
--- a/src/sna/sna_dri.c
+++ b/src/sna/sna_dri.c
-@@ -2276,6 +2276,13 @@ out_complete:
- }
+@@ -2322,6 +2322,13 @@ out_complete:
+ void sna_dri_destroy_window(WindowPtr win) { }
#endif
+#if DRI2INFOREC_VERSION >= 8 && XMIR
@@ -230,7 +167,7 @@ index 0405186..ddb321c 100644
static bool has_i830_dri(void)
{
return access(DRI_DRIVER_PATH "/i830_dri.so", R_OK) == 0;
-@@ -2351,6 +2358,13 @@ bool sna_dri_open(struct sna *sna, ScreenPtr screen)
+@@ -2471,6 +2478,13 @@ bool sna_dri_open(struct sna *sna, ScreenPtr screen)
info.ReuseBufferNotify = NULL;
#endif
@@ -243,12 +180,12 @@ index 0405186..ddb321c 100644
+
#if USE_ASYNC_SWAP
info.version = 10;
- info.AsyncSwap = sna_dri_async_swap;
+ info.scheduleSwap0 = 1;
diff --git a/src/sna/sna_driver.c b/src/sna/sna_driver.c
-index 2a4a830..44eea33 100644
+index 6d4420f..5cc52d3 100644
--- a/src/sna/sna_driver.c
+++ b/src/sna/sna_driver.c
-@@ -442,6 +442,9 @@ static Bool sna_pre_init(ScrnInfoPtr scrn, int flags)
+@@ -514,6 +514,9 @@ static Bool sna_pre_init(ScrnInfoPtr scrn, int flags)
goto cleanup;
}
@@ -258,7 +195,7 @@ index 2a4a830..44eea33 100644
/* Sanity check */
if (hosted() && (sna->flags & SNA_IS_HOSTED) == 0) {
xf86DrvMsg(scrn->scrnIndex, X_ERROR,
-@@ -449,9 +452,14 @@ static Bool sna_pre_init(ScrnInfoPtr scrn, int flags)
+@@ -521,9 +524,14 @@ static Bool sna_pre_init(ScrnInfoPtr scrn, int flags)
goto cleanup;
}
@@ -275,7 +212,7 @@ index 2a4a830..44eea33 100644
if (!xf86SetDepthBpp(scrn, preferred_depth, 0, 0,
Support32bppFb |
-@@ -488,6 +496,9 @@ static Bool sna_pre_init(ScrnInfoPtr scrn, int flags)
+@@ -560,6 +568,9 @@ static Bool sna_pre_init(ScrnInfoPtr scrn, int flags)
intel_detect_chipset(scrn, sna->pEnt, sna->PciInfo);
@@ -285,7 +222,7 @@ index 2a4a830..44eea33 100644
kgem_init(&sna->kgem, fd, sna->PciInfo, sna->info->gen);
if (xf86ReturnOptValBool(sna->Options, OPTION_ACCEL_DISABLE, FALSE) ||
!sna_option_cast_to_bool(sna, OPTION_ACCEL_METHOD, TRUE)) {
-@@ -571,6 +582,8 @@ sna_block_handler(BLOCKHANDLER_ARGS_DECL)
+@@ -659,6 +670,8 @@ sna_block_handler(BLOCKHANDLER_ARGS_DECL)
if (*tv == NULL || ((*tv)->tv_usec | (*tv)->tv_sec))
sna_accel_block_handler(sna, tv);
@@ -294,7 +231,7 @@ index 2a4a830..44eea33 100644
}
static void
-@@ -918,6 +931,8 @@ sna_screen_init(SCREEN_INIT_ARGS_DECL)
+@@ -1010,6 +1023,8 @@ sna_screen_init(SCREEN_INIT_ARGS_DECL)
if (!miDCInitialize(screen, xf86GetPointerScreenFuncs()))
return FALSE;
@@ -305,10 +242,10 @@ index 2a4a830..44eea33 100644
HARDWARE_CURSOR_TRUECOLOR_AT_8BPP |
diff --git a/src/sna/sna_xmir.c b/src/sna/sna_xmir.c
new file mode 100644
-index 0000000..1e38a41
+index 0000000..edfe298
--- /dev/null
+++ b/src/sna/sna_xmir.c
-@@ -0,0 +1,187 @@
+@@ -0,0 +1,186 @@
+/***************************************************************************
+
+ Copyright 2013 Intel Corporation. All Rights Reserved.
@@ -335,7 +272,9 @@ index 0000000..1e38a41
+
+ **************************************************************************/
+
-+#include <assert.h>
++#ifdef HAVE_CONFIG_H
++#include "config.h"
++#endif
+
+#include "sna.h"
+
@@ -363,18 +302,17 @@ index 0000000..1e38a41
+static void
+sna_xmir_copy_to_mir(xmir_window *xmir_win, RegionPtr region)
+{
-+ PixmapPtr src = get_window_pixmap(xmir_window_to_windowptr(xmir_win));
-+ struct sna *sna = to_sna_from_pixmap(src);
-+ BoxPtr dst_box = xmir_window_get_drawable_region(xmir_win);
-+ struct sna_pixmap *priv;
-+ struct kgem_bo *bo;
++ PixmapPtr pixmap = get_window_pixmap(xmir_window_to_windowptr(xmir_win));
++ struct sna *sna = to_sna_from_pixmap(pixmap);
++ const BoxRec *dst_box = xmir_window_get_drawable_region(xmir_win);
++ struct kgem_bo *src, *dst;
+ BoxRec *box;
-+ int16_t sx, sy;
-+ int pitch = xmir_window_get_stride(xmir_win);
-+ int nbox;
++ const int pitch = xmir_window_get_stride(xmir_win);
++ int16_t sx, sy, dx, dy;
++ int n;
+
+#if FORCE_FULL_REDRAW
-+ RegionRec whole = { { 0, 0, src->drawable.width, src->drawable.height } };
++ RegionRec whole = { { 0, 0, pixmap->drawable.width, pixmap->drawable.height } };
+ region = &whole;
+#endif
+
@@ -390,69 +328,67 @@ index 0000000..1e38a41
+ pitch, xmir_window_get_fd(xmir_win)));
+
+ box = REGION_RECTS(region);
-+ nbox = REGION_NUM_RECTS(region);
-+ if (nbox == 0)
++ n = REGION_NUM_RECTS(region);
++ if (n == 0)
+ return;
+
+ /* XXX size is bogus, but only used for sanity checks */
-+ bo = kgem_create_for_prime(&sna->kgem,
-+ xmir_window_get_fd(xmir_win),
-+ pitch * (dst_box->y2 - dst_box->y1));
-+ if (bo == NULL)
++ dst = kgem_create_for_prime(&sna->kgem,
++ xmir_window_get_fd(xmir_win),
++ pitch * (dst_box->y2 - dst_box->y1));
++ if (dst == NULL)
+ return;
+
-+ bo->pitch = pitch;
-+ if (__kgem_bo_get_caching(&sna->kgem, bo) != 1)
-+ bo->scanout = true; /* presume the worst */
++ dst->pitch = pitch;
++ dst->scanout = true; /* presume the worst (almost always true) */
+
-+ get_window_deltas(src, &sx, &sy);
++ if (get_window_deltas(pixmap, &sx, &sy))
++ RegionTranslate(region, sx, sy);
+
-+ priv = sna_pixmap_move_to_gpu(src, MOVE_READ);
-+ if (priv &&
-+ sna->render.copy_boxes(sna, GXcopy,
-+ src, priv->gpu_bo, sx, sy,
-+ src, bo, -dst_box->x1, -dst_box->y1,
-+ box, nbox, COPY_LAST)) {
++ dx = sx + dst_box->x1;
++ dy = sy + dst_box->y1;
++
++ src = NULL;
++ if (!wedged(sna))
++ src = __sna_render_pixmap_bo(sna, pixmap, ®ion->extents, true);
++ if (src && sna->render.copy_boxes(sna, GXcopy,
++ pixmap, src, 0, 0,
++ pixmap, dst, -dx, -dy,
++ box, n, COPY_LAST)) {
+ kgem_submit(&sna->kgem);
-+ nbox = 0;
++ n = 0;
+ } else {
-+ void *dst;
-+
-+ DBG(("%s: fallback\n", __FUNCTION__));
-+
-+ if (sx | sy)
-+ RegionTranslate(region, sx, sy);
-+
-+ dst = kgem_bo_map__gtt(&sna->kgem, bo);
-+ if (dst &&
-+ sna_drawable_move_region_to_cpu(&src->drawable,
-+ region, MOVE_READ)) {
-+ int16_t dx = sx + dst_box->x1;
-+ int16_t dy = sy + dst_box->y1;
-+ kgem_bo_sync__gtt(&sna->kgem, bo);
-+ do {
-+ memcpy_blt(src->devPrivate.ptr, dst,
-+ src->drawable.bitsPerPixel,
-+ src->devKind, bo->pitch,
-+ box->x1, box->y1,
-+ box->x1 - dx, box->y1 - dy,
-+ box->x2 - box->x1,
-+ box->y2 - box->y1);
-+ } while (--nbox);
++ void *ptr = kgem_bo_map__gtt(&sna->kgem, dst);
++ if (ptr && sna_drawable_move_region_to_cpu(&pixmap->drawable,
++ region, MOVE_READ)) {
++ kgem_bo_sync__gtt(&sna->kgem, dst);
++ if (sigtrap_get() == 0) {
++ do {
++ memcpy_blt(pixmap->devPrivate.ptr, ptr,
++ pixmap->drawable.bitsPerPixel,
++ pixmap->devKind, dst->pitch,
++ box->x1, box->y1,
++ box->x1 - dx, box->y1 - dy,
++ box->x2 - box->x1,
++ box->y2 - box->y1);
++ box++;
++ } while (--n);
++ sigtrap_put();
++ }
+ }
-+
-+ if (sx | sy)
-+ RegionTranslate(region, -sx, -sy);
+ }
+
-+ if (nbox == 0)
++ if (sx | sy)
++ RegionTranslate(region, -sx, -sy);
++
++ if (n == 0)
+ xmir_submit_rendering_for_window(xmir_win, region);
+
-+ bo->scanout = false; /* but don't confuse our caching! */
-+ kgem_bo_destroy(&sna->kgem, bo);
++ dst->scanout = false; /* but don't confuse our caching! */
++ kgem_bo_destroy(&sna->kgem, dst);
+}
+
-+static const xmir_driver sna_xmir_driver = {
++static xmir_driver sna_xmir_driver = {
+ XMIR_DRIVER_VERSION,
+ sna_xmir_copy_to_mir
+};
commit 55ff577512541da2bcd9fa4498349bd053c5e630
Author: Timo Aaltonen <tjaalton@ubuntu.com>
Date: Tue Oct 1 16:22:45 2013 +0300
source: Revert to source format 1.0.
diff --git a/debian/changelog b/debian/changelog
index 254105d..37bcfe9 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,6 +2,7 @@ xserver-xorg-video-intel (2:2.99.903-0ubuntu1) UNRELEASED; urgency=low
* Merge from unreleased debian git
* Drop patches that were from upstream.
+ * source: Revert to source format 1.0.
-- Timo Aaltonen <tjaalton@ubuntu.com> Tue, 01 Oct 2013 16:18:05 +0300
diff --git a/debian/source/format b/debian/source/format
index 163aaf8..d3827e7 100644
--- a/debian/source/format
+++ b/debian/source/format
@@ -1 +1 @@
-3.0 (quilt)
+1.0
commit a52ddf7cab9cc19606a705e9ed871fec4c60e000
Author: Timo Aaltonen <tjaalton@ubuntu.com>
Date: Tue Oct 1 15:13:55 2013 +0300
Drop patches that were from upstream.
diff --git a/debian/changelog b/debian/changelog
index 77b0832..254105d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+xserver-xorg-video-intel (2:2.99.903-0ubuntu1) UNRELEASED; urgency=low
+
+ * Merge from unreleased debian git
+ * Drop patches that were from upstream.
+
+ -- Timo Aaltonen <tjaalton@ubuntu.com> Tue, 01 Oct 2013 16:18:05 +0300
+
xserver-xorg-video-intel (2:2.99.903-1) UNRELEASED; urgency=low
* New upstream prerelease.
diff --git a/debian/patches/0001-sna-Make-sure-the-frontbuffer-exists-before-doing-pi.patch b/debian/patches/0001-sna-Make-sure-the-frontbuffer-exists-before-doing-pi.patch
deleted file mode 100644
index e1443eb..0000000
--- a/debian/patches/0001-sna-Make-sure-the-frontbuffer-exists-before-doing-pi.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 5d29daa7df72d9a96e044d0706f3014811389629 Mon Sep 17 00:00:00 2001
-From: Chris Wilson <chris@chris-wilson.co.uk>
-Date: Wed, 14 Aug 2013 18:16:22 +0100
-Subject: [PATCH] sna: Make sure the frontbuffer exists before doing pitch
- checks
-
-An unusual path to be sure, to call sna_crtc_set_mode_major before we
-create a GPU bo for the scanout - but might be possible after a GPU
-hang, or it appears after trying to set a 0x0 mode. At any rate, make
-sure the GPU bo exists before dereferencing.
-
-Bugzilla: https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/1212344
-Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
----
- src/sna/sna_display.c | 15 +++++++++------
- 1 file changed, 9 insertions(+), 6 deletions(-)
-
-diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
-index 2a5b4b4..a6a4665 100644
---- a/src/sna/sna_display.c
-+++ b/src/sna/sna_display.c
-@@ -1093,7 +1093,7 @@ static bool use_shadow(struct sna *sna, xf86CrtcPtr crtc)
- PictTransform crtc_to_fb;
- struct pict_f_transform f_crtc_to_fb, f_fb_to_crtc;
- unsigned long pitch_limit;
-- struct kgem_bo *bo;
-+ struct sna_pixmap *priv;
- BoxRec b;
-
- assert(sna->scrn->virtualX && sna->scrn->virtualY);
-@@ -1118,18 +1118,21 @@ static bool use_shadow(struct sna *sna, xf86CrtcPtr crtc)
- return true;
- }
-
-- bo = sna_pixmap_get_bo(sna->front);
-+ priv = sna_pixmap_force_to_gpu(sna->front, MOVE_READ | MOVE_WRITE);
-+ if (priv == NULL)
-+ return true; /* maybe we can create a bo for the scanout? */
-+
- if (sna->kgem.gen == 071)
-- pitch_limit = bo->tiling ? 16 * 1024 : 32 * 1024;
-+ pitch_limit = priv->gpu_bo->tiling ? 16 * 1024 : 32 * 1024;
- else if ((sna->kgem.gen >> 3) > 4)
- pitch_limit = 32 * 1024;
- else if ((sna->kgem.gen >> 3) == 4)
-- pitch_limit = bo->tiling ? 16 * 1024 : 32 * 1024;
-+ pitch_limit = priv->gpu_bo->tiling ? 16 * 1024 : 32 * 1024;
- else if ((sna->kgem.gen >> 3) == 3)
-- pitch_limit = bo->tiling ? 8 * 1024 : 16 * 1024;
-+ pitch_limit = priv->gpu_bo->tiling ? 8 * 1024 : 16 * 1024;
- else
- pitch_limit = 8 * 1024;
-- if (bo->pitch > pitch_limit)
-+ if (priv->gpu_bo->pitch > pitch_limit)
- return true;
-
- transform = NULL;
---
-1.8.3.4
-
diff --git a/debian/patches/check-hosted-initialisation-succeeds.patch b/debian/patches/check-hosted-initialisation-succeeds.patch
deleted file mode 100644
index 829e3f4..0000000
--- a/debian/patches/check-hosted-initialisation-succeeds.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-commit 394978867edf3746c285491db6be41abfe325d87
-Author: Chris Wilson <chris@chris-wilson.co.uk>
-Date: Wed Aug 14 08:38:52 2013 +0100
-
- sna: Check that we successfully install the required hosting midlayer
-
- Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-
-diff --git a/src/sna/sna_driver.c b/src/sna/sna_driver.c
-index c27deb6..83a5bba 100644
---- a/src/sna/sna_driver.c
-+++ b/src/sna/sna_driver.c
-@@ -430,6 +430,13 @@ static Bool sna_pre_init(ScrnInfoPtr scrn, int flags)
- goto cleanup;
- }
-
-+ /* Sanity check */
-+ if (hosted() && (sna->flags & SNA_IS_HOSTED) == 0) {
-+ xf86DrvMsg(scrn->scrnIndex, X_ERROR,
-+ "Failed to setup hosted device.\n");
-+ goto cleanup;
-+ }
-+
- preferred_depth = sna->info->gen < 030 ? 15 : 24;
- if (!fb_supports_depth(fd, preferred_depth))
- preferred_depth = 24;
diff --git a/debian/patches/disable-unneeded-functions-when-hosted.patch b/debian/patches/disable-unneeded-functions-when-hosted.patch
deleted file mode 100644
index 69198fd..0000000
--- a/debian/patches/disable-unneeded-functions-when-hosted.patch
+++ /dev/null
@@ -1,261 +0,0 @@
-commit b6b5c3f009585151eb772dfc2526843c7cee82b3
-Author: Chris Wilson <chris@chris-wilson.co.uk>
-Date: Fri Aug 9 11:34:39 2013 +0100
-
- intel: Disable incompatible features whilst hosted
-
- Start adding the infrastructure to disable direct hardware access if X
- is being run under a system compositor (aka "hosted").
-
- Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-
-diff --git a/src/intel_device.c b/src/intel_device.c
-index c5f0a38..d9ff8bc 100644
---- a/src/intel_device.c
-+++ b/src/intel_device.c
-@@ -92,7 +92,7 @@ static int __intel_check_device(int fd)
- if (drmIoctl(fd, DRM_IOCTL_I915_GETPARAM, &gp))
- ret = FALSE;
- }
-- if (ret) {
-+ if (ret && !hosted()) {
- struct drm_mode_card_res res;
-
- memset(&res, 0, sizeof(res));
-@@ -199,6 +199,12 @@ int intel_open_device(int entity_num,
- dev->open_count = 0;
- dev->master_count = 0;
-
-+ /* If hosted under a system compositor, just pretend to be master */
-+ if (hosted()) {
-+ dev->open_count++;
-+ dev->master_count++;
-+ }
-+
- xf86GetEntityPrivate(entity_num, intel_device_key)->ptr = dev;
-
- return fd;
-@@ -222,6 +228,8 @@ int intel_get_device(ScrnInfoPtr scrn)
- drmSetVersion sv;
- int retry = 2000;
-
-+ assert(!hosted());
-+
- /* Check that what we opened was a master or a
- * master-capable FD, by setting the version of the
- * interface we'll use to talk to it.
-@@ -267,6 +275,7 @@ int intel_get_master(ScrnInfoPtr scrn)
- if (dev->master_count++ == 0) {
- int retry = 2000;
-
-+ assert(!hosted());
- do {
- ret = drmSetMaster(dev->fd);
- if (ret == 0)
-@@ -288,6 +297,7 @@ int intel_put_master(ScrnInfoPtr scrn)
- ret = 0;
- assert(dev->master_count);
- if (--dev->master_count == 0) {
-+ assert(!hosted());
- assert(drmSetMaster(dev->fd) == 0);
- ret = drmDropMaster(dev->fd);
- }
-@@ -317,6 +327,7 @@ void intel_put_device(ScrnInfoPtr scrn)
- if (--dev->open_count)
- return;
-
-+ assert(!hosted());
- intel_set_device(scrn, NULL);
-
- drmClose(dev->fd);
-diff --git a/src/intel_driver.h b/src/intel_driver.h
-index 1e67eab..4768536 100644
---- a/src/intel_driver.h
-+++ b/src/intel_driver.h
-@@ -129,4 +129,6 @@ void intel_put_device(ScrnInfoPtr scrn);
-
- void __intel_uxa_release_device(ScrnInfoPtr scrn);
-
-+#define hosted() (0)
-+
- #endif /* INTEL_DRIVER_H */
-diff --git a/src/intel_module.c b/src/intel_module.c
-index 47e494c..42fa8d8 100644
---- a/src/intel_module.c
-+++ b/src/intel_module.c
-@@ -382,6 +382,9 @@ static Bool intel_driver_func(ScrnInfoPtr pScrn,
- #else
- (*flag) = HW_IO | HW_MMIO;
- #endif
-+ if (hosted())
-+ (*flag) = HW_SKIP_CONSOLE;
-+
- return TRUE;
- default:
- /* Unknown or deprecated function */
-@@ -410,6 +413,9 @@ static enum accel_method { UXA, SNA } get_accel_method(void)
- enum accel_method accel_method = DEFAULT_ACCEL_METHOD;
- XF86ConfDevicePtr dev;
-
-+ if (hosted())
-+ return SNA;
-+
- dev = _xf86findDriver("intel", xf86configptr->conf_device_lst);
- if (dev && dev->dev_option_lst) {
- const char *s;
-@@ -493,7 +499,8 @@ static Bool intel_pci_probe(DriverPtr driver,
- case PCI_CHIP_I810_DC100:
- case PCI_CHIP_I810_E:
- case PCI_CHIP_I815:
-- break;
-+ if (!hosted())
-+ break;
- default:
- return FALSE;
- }
-diff --git a/src/sna/sna.h b/src/sna/sna.h
-index caf671f..7387088 100644
---- a/src/sna/sna.h
-+++ b/src/sna/sna.h
-@@ -229,6 +229,7 @@ struct sna {
- #define SNA_TEAR_FREE 0x10
- #define SNA_FORCE_SHADOW 0x20
- #define SNA_FLUSH_GTT 0x40
-+#define SNA_IS_HOSTED 0x80
- #define SNA_REPROBE 0x80000000
-
- unsigned cpu_features;
-diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
-index 5dcf47f..f86d93d 100644
---- a/src/sna/sna_display.c
-+++ b/src/sna/sna_display.c
-@@ -3151,11 +3151,22 @@ sna_crtc_config_notify(ScreenPtr screen)
- sna_mode_update(to_sna_from_screen(screen));
- }
-
-+#if HAS_PIXMAP_SHARING
-+#define sna_setup_provider(scrn) xf86ProviderSetup(scrn, NULL, "Intel")
-+#else
-+#define sna_setup_provider(scrn)
-+#endif
-+
- bool sna_mode_pre_init(ScrnInfoPtr scrn, struct sna *sna)
- {
- struct sna_mode *mode = &sna->mode;
- int i;
-
-+ if (sna->flags & SNA_IS_HOSTED) {
-+ sna_setup_provider(scrn);
-+ return true;
-+ }
-+
- mode->kmode = drmModeGetResources(sna->kgem.fd);
- if (mode->kmode) {
- xf86CrtcConfigInit(scrn, &sna_mode_funcs);
-@@ -3172,9 +3183,7 @@ bool sna_mode_pre_init(ScrnInfoPtr scrn, struct sna *sna)
- if (!xf86IsEntityShared(scrn->entityList[0]))
- sna_mode_compute_possible_clones(scrn);
-
--#if HAS_PIXMAP_SHARING
-- xf86ProviderSetup(scrn, NULL, "Intel");
--#endif
-+ sna_setup_provider(scrn);
- } else {
- if (!sna_mode_fake_init(sna))
- return false;
-@@ -3200,6 +3209,9 @@ sna_mode_close(struct sna *sna)
- while (sna_mode_has_pending_events(sna))
- sna_mode_wakeup(sna);
-
-+ if (sna->flags & SNA_IS_HOSTED)
-+ return;
-+
- for (i = 0; i < xf86_config->num_crtc; i++)
- sna_crtc_disable_shadow(sna, to_sna_crtc(xf86_config->crtc[i]));
- }
-diff --git a/src/sna/sna_driver.c b/src/sna/sna_driver.c
-index fc8773b..7f2c0ac 100644
---- a/src/sna/sna_driver.c
-+++ b/src/sna/sna_driver.c
-@@ -287,7 +287,7 @@ static bool has_pageflipping(struct sna *sna)
- drm_i915_getparam_t gp;
- int v;
-
-- if (sna->flags & SNA_NO_WAIT)
-+ if (sna->flags & (SNA_IS_HOSTED | SNA_NO_WAIT))
- return false;
-
- v = 0;
-@@ -413,6 +413,7 @@ static Bool sna_pre_init(ScrnInfoPtr scrn, int flags)
- sna = to_sna(scrn);
- sna->scrn = scrn;
- sna->pEnt = pEnt;
-+ sna->flags = 0;
-
- scrn->displayWidth = 640; /* default it */
-
-@@ -425,7 +426,7 @@ static Bool sna_pre_init(ScrnInfoPtr scrn, int flags)
- fd = intel_get_device(scrn);
- if (fd == -1) {
- xf86DrvMsg(scrn->scrnIndex, X_ERROR,
-- "Failed to become DRM master.\n");
-+ "Failed to claim DRM device.\n");
- goto cleanup;
- }
-
-@@ -484,7 +485,6 @@ static Bool sna_pre_init(ScrnInfoPtr scrn, int flags)
- if (xf86ReturnOptValBool(sna->Options, OPTION_TILING_FB, FALSE))
- sna->tiling &= ~SNA_TILING_FB;
-
-- sna->flags = 0;
- if (!xf86ReturnOptValBool(sna->Options, OPTION_SWAPBUFFERS_WAIT, TRUE))
- sna->flags |= SNA_NO_WAIT;
- if (xf86ReturnOptValBool(sna->Options, OPTION_TRIPLE_BUFFER, TRUE))
-@@ -629,6 +629,9 @@ sna_uevent_init(ScrnInfoPtr scrn)
- Bool hotplug;
- MessageType from = X_CONFIG;
-
-+ if (sna->flags & SNA_IS_HOSTED)
-+ return;
-+
- DBG(("%s\n", __FUNCTION__));
-
- /* RandR will be disabled if Xinerama is active, and so generating
-@@ -895,7 +898,8 @@ sna_screen_init(SCREEN_INIT_ARGS_DECL)
- if (!miDCInitialize(screen, xf86GetPointerScreenFuncs()))
- return FALSE;
-
-- if (xf86_cursors_init(screen, SNA_CURSOR_X, SNA_CURSOR_Y,
-+ if ((sna->flags & SNA_IS_HOSTED) == 0 &&
-+ xf86_cursors_init(screen, SNA_CURSOR_X, SNA_CURSOR_Y,
- HARDWARE_CURSOR_TRUECOLOR_AT_8BPP |
- HARDWARE_CURSOR_BIT_ORDER_MSBFIRST |
- HARDWARE_CURSOR_INVERT_MASK |
-diff --git a/src/sna/sna_video_overlay.c b/src/sna/sna_video_overlay.c
-index a0b4db9..a68a173 100644
---- a/src/sna/sna_video_overlay.c
-+++ b/src/sna/sna_video_overlay.c
-@@ -683,6 +683,9 @@ void sna_video_overlay_setup(struct sna *sna, ScreenPtr screen)
- struct sna_video *video;
- XvPortPtr port;
-
-+ if (sna->flags & SNA_IS_HOSTED)
-+ return;
-+
- if (!sna_has_overlay(sna))
- return;
-
-diff --git a/src/sna/sna_video_sprite.c b/src/sna/sna_video_sprite.c
-index 07e59bd..a8d50ab 100644
---- a/src/sna/sna_video_sprite.c
-+++ b/src/sna/sna_video_sprite.c
-@@ -456,6 +456,9 @@ void sna_video_sprite_setup(struct sna *sna, ScreenPtr screen)
- struct sna_video *video;
- XvPortPtr port;
-
-+ if (sna->flags & SNA_IS_HOSTED)
-+ return;
-+
- memset(&r, 0, sizeof(struct drm_mode_get_plane_res));
- if (drmIoctl(sna->kgem.fd, DRM_IOCTL_MODE_GETPLANERESOURCES, &r))
- return;
diff --git a/debian/patches/dont-copy-fbcon-if-hosted.patch b/debian/patches/dont-copy-fbcon-if-hosted.patch
deleted file mode 100644
index 3bec2a7..0000000
--- a/debian/patches/dont-copy-fbcon-if-hosted.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-commit 7690346248fd8d3460cc07f018827ff55b85d19d
-Author: Chris Wilson <chris@chris-wilson.co.uk>
-Date: Sat Aug 24 14:00:34 2013 +0100
-
- sna: Don't copy fbcon if hosted
-
- When hosted, we have no idea what the right initial contents should be
- as we are independent of the CRTC and so the existing fb is irrelevant.
- Plus, not actually being master will cause the attempt to read back the
- bound framebuffer to fail...
-
- Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-
-diff --git a/src/sna/sna_driver.c b/src/sna/sna_driver.c
-index 83a5bba..e6c424a 100644
---- a/src/sna/sna_driver.c
-+++ b/src/sna/sna_driver.c
-@@ -259,7 +259,7 @@ static Bool sna_create_screen_resources(ScreenPtr screen)
- screen->SetScreenPixmap(sna->front);
-
- /* Only preserve the fbcon, not any subsequent server regens */
-- if (serverGeneration == 1)
-+ if (serverGeneration == 1 && (sna->flags & SNA_IS_HOSTED) == 0)
- sna_copy_fbcon(sna);
-
- if (!sna_become_master(sna)) {
diff --git a/debian/patches/fix-spelling-of-caching.patch b/debian/patches/fix-spelling-of-caching.patch
deleted file mode 100644
index 00dba87..0000000
--- a/debian/patches/fix-spelling-of-caching.patch
+++ /dev/null
@@ -1,180 +0,0 @@
-commit 6bd897157b34e3b80dea68fa615d0fba08238486
-Author: Sedat Dilek <sedat.dilek@gmail.com>
-Date: Wed Aug 14 10:01:13 2013 +0200
-
- Correct misspelled caching
-
- Signed-off-by: Sedat Dilek <sedat.dilek@gmail.com>
-
---- a/src/sna/kgem.c
-+++ b/src/sna/kgem.c
-@@ -159,13 +159,13 @@
- #define UNCACHED 0
- #define SNOOPED 1
-
--struct local_i915_gem_cacheing {
-+struct local_i915_gem_caching {
- uint32_t handle;
-- uint32_t cacheing;
-+ uint32_t caching;
- };
-
--#define LOCAL_I915_GEM_SET_CACHEING 0x2f
--#define LOCAL_IOCTL_I915_GEM_SET_CACHEING DRM_IOW(DRM_COMMAND_BASE + LOCAL_I915_GEM_SET_CACHEING, struct local_i915_gem_cacheing)
-+#define LOCAL_I915_GEM_SET_CACHING 0x2f
-+#define LOCAL_IOCTL_I915_GEM_SET_CACHING DRM_IOW(DRM_COMMAND_BASE + LOCAL_I915_GEM_SET_CACHING, struct local_i915_gem_caching)
-
- struct kgem_buffer {
- struct kgem_bo base;
-@@ -257,14 +257,14 @@
- return ret == 0;
- }
-
--static bool gem_set_cacheing(int fd, uint32_t handle, int cacheing)
-+static bool gem_set_caching(int fd, uint32_t handle, int caching)
- {
-- struct local_i915_gem_cacheing arg;
-+ struct local_i915_gem_caching arg;
-
- VG_CLEAR(arg);
- arg.handle = handle;
-- arg.cacheing = cacheing;
-- return drmIoctl(fd, LOCAL_IOCTL_I915_GEM_SET_CACHEING, &arg) == 0;
-+ arg.caching = caching;
-+ return drmIoctl(fd, LOCAL_IOCTL_I915_GEM_SET_CACHING, &arg) == 0;
- }
-
- static uint32_t gem_userptr(int fd, void *ptr, int size, int read_only)
-@@ -925,7 +925,7 @@
- return has_llc;
- }
-
--static bool test_has_cacheing(struct kgem *kgem)
-+static bool test_has_caching(struct kgem *kgem)
- {
- uint32_t handle;
- bool ret;
-@@ -941,7 +941,7 @@
- if (handle == 0)
- return false;
-
-- ret = gem_set_cacheing(kgem->fd, handle, UNCACHED);
-+ ret = gem_set_caching(kgem->fd, handle, UNCACHED);
- gem_close(kgem->fd, handle);
Reply to: