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 <tjaal...@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 <tjaal...@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 <tjaal...@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 <tjaal...@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 <tjaal...@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 <tjaal...@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 <ch...@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 <ch...@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 <ch...@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 <ch...@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 <ch...@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 <ch...@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 <ch...@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 <ch...@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.di...@gmail.com> -Date: Wed Aug 14 10:01:13 2013 +0200 - - Correct misspelled caching - - Signed-off-by: Sedat Dilek <sedat.di...@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); -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/e1vr0rg-00023k...@vasks.debian.org