Date: Tuesday, April 14, 2015 @ 14:04:46 Author: lcarlier Revision: 236532
archrelease: copy trunk to extra-i686, extra-x86_64 Added: xf86-video-intel/repos/extra-i686/PKGBUILD (from rev 236531, xf86-video-intel/trunk/PKGBUILD) xf86-video-intel/repos/extra-i686/git-fixes.patch (from rev 236531, xf86-video-intel/trunk/git-fixes.patch) xf86-video-intel/repos/extra-i686/xf86-video-intel.install (from rev 236531, xf86-video-intel/trunk/xf86-video-intel.install) xf86-video-intel/repos/extra-x86_64/PKGBUILD (from rev 236531, xf86-video-intel/trunk/PKGBUILD) xf86-video-intel/repos/extra-x86_64/git-fixes.patch (from rev 236531, xf86-video-intel/trunk/git-fixes.patch) xf86-video-intel/repos/extra-x86_64/xf86-video-intel.install (from rev 236531, xf86-video-intel/trunk/xf86-video-intel.install) Deleted: xf86-video-intel/repos/extra-i686/PKGBUILD xf86-video-intel/repos/extra-i686/git-fixes.patch xf86-video-intel/repos/extra-i686/xf86-video-intel.install xf86-video-intel/repos/extra-x86_64/PKGBUILD xf86-video-intel/repos/extra-x86_64/git-fixes.patch xf86-video-intel/repos/extra-x86_64/xf86-video-intel.install ---------------------------------------+ /PKGBUILD | 110 ++++++++++ /git-fixes.patch | 350 ++++++++++++++++++++++++++++++++ /xf86-video-intel.install | 40 +++ extra-i686/PKGBUILD | 55 ----- extra-i686/git-fixes.patch | 128 ----------- extra-i686/xf86-video-intel.install | 20 - extra-x86_64/PKGBUILD | 55 ----- extra-x86_64/git-fixes.patch | 128 ----------- extra-x86_64/xf86-video-intel.install | 20 - 9 files changed, 500 insertions(+), 406 deletions(-) Deleted: extra-i686/PKGBUILD =================================================================== --- extra-i686/PKGBUILD 2015-04-14 12:04:37 UTC (rev 236531) +++ extra-i686/PKGBUILD 2015-04-14 12:04:46 UTC (rev 236532) @@ -1,55 +0,0 @@ -# $Id$ -# Maintainer: AndyRTR <andy...@archlinux.org> -# Maintainer: Jan de Groot <j...@archlinux.org> - -pkgname=xf86-video-intel -pkgver=2.99.917 -pkgrel=4 -arch=(i686 x86_64) -url="http://xorg.freedesktop.org/" -license=('custom') -install=$pkgname.install -pkgdesc="X.org Intel i810/i830/i915/945G/G965+ video drivers" -depends=('mesa-dri' 'libxvmc' 'pixman' 'xcb-util>=0.3.9') -makedepends=('xorg-server-devel' 'X-ABI-VIDEODRV_VERSION=19' 'libx11' 'libxrender' - # additional deps for intel-virtual-output - 'libxrandr' 'libxinerama' 'libxcursor' 'libxtst') -optdepends=('libxrandr: for intel-virtual-output' - 'libxinerama: for intel-virtual-output' - 'libxcursor: for intel-virtual-output' - 'libxtst: for intel-virtual-output') -replaces=('xf86-video-intel-uxa' 'xf86-video-intel-sna') -provides=('xf86-video-intel-uxa' 'xf86-video-intel-sna') -conflicts=('xorg-server<1.16' 'X-ABI-VIDEODRV_VERSION<19' 'X-ABI-VIDEODRV_VERSION>=20' - 'xf86-video-intel-sna' 'xf86-video-intel-uxa' 'xf86-video-i810' 'xf86-video-intel-legacy') -groups=('xorg-drivers' 'xorg') -source=(${url}/archive/individual/driver/${pkgname}-${pkgver}.tar.bz2 - git-fixes.patch) -sha256sums=('00b781eea055582820a123c47b62411bdf6aabf4f03dc0568faec55faf9667c9' - '9216b69b7e01b6910b4758c4e346d84a43198ee516f6b239bf43c4e172a9c922') - -prepare() { - cd ${pkgname}-${pkgver} - # fix FS#43840, FS#43906 - patch -Np1 -i ../git-fixes.patch -} - -build() { - cd ${pkgname}-${pkgver} - ./configure --prefix=/usr --libexecdir=/usr/lib - make -} - -check() { - cd $pkgname-$pkgver - make check -} - -package() { - cd ${pkgname}-${pkgver} - - make DESTDIR="${pkgdir}" install - - install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" - install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" -} Copied: xf86-video-intel/repos/extra-i686/PKGBUILD (from rev 236531, xf86-video-intel/trunk/PKGBUILD) =================================================================== --- extra-i686/PKGBUILD (rev 0) +++ extra-i686/PKGBUILD 2015-04-14 12:04:46 UTC (rev 236532) @@ -0,0 +1,55 @@ +# $Id$ +# Maintainer: AndyRTR <andy...@archlinux.org> +# Maintainer: Jan de Groot <j...@archlinux.org> + +pkgname=xf86-video-intel +pkgver=2.99.917 +pkgrel=5 +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +license=('custom') +install=$pkgname.install +pkgdesc="X.org Intel i810/i830/i915/945G/G965+ video drivers" +depends=('mesa-dri' 'libxvmc' 'pixman' 'xcb-util>=0.3.9') +makedepends=('xorg-server-devel' 'X-ABI-VIDEODRV_VERSION=19' 'libx11' 'libxrender' + # additional deps for intel-virtual-output + 'libxrandr' 'libxinerama' 'libxcursor' 'libxtst') +optdepends=('libxrandr: for intel-virtual-output' + 'libxinerama: for intel-virtual-output' + 'libxcursor: for intel-virtual-output' + 'libxtst: for intel-virtual-output') +replaces=('xf86-video-intel-uxa' 'xf86-video-intel-sna') +provides=('xf86-video-intel-uxa' 'xf86-video-intel-sna') +conflicts=('xorg-server<1.16' 'X-ABI-VIDEODRV_VERSION<19' 'X-ABI-VIDEODRV_VERSION>=20' + 'xf86-video-intel-sna' 'xf86-video-intel-uxa' 'xf86-video-i810' 'xf86-video-intel-legacy') +groups=('xorg-drivers' 'xorg') +source=(${url}/archive/individual/driver/${pkgname}-${pkgver}.tar.bz2 + git-fixes.patch) +sha256sums=('00b781eea055582820a123c47b62411bdf6aabf4f03dc0568faec55faf9667c9' + '3b38b844fbc8088401ebbbafbbf1399d87f077caa5020cbd822487b7d26514e0') + +prepare() { + cd ${pkgname}-${pkgver} + # fix FS#43840, FS#43906 + patch -Np1 -i ../git-fixes.patch +} + +build() { + cd ${pkgname}-${pkgver} + ./configure --prefix=/usr --libexecdir=/usr/lib + make +} + +check() { + cd $pkgname-$pkgver + make check +} + +package() { + cd ${pkgname}-${pkgver} + + make DESTDIR="${pkgdir}" install + + install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" + install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" +} Deleted: extra-i686/git-fixes.patch =================================================================== --- extra-i686/git-fixes.patch 2015-04-14 12:04:37 UTC (rev 236531) +++ extra-i686/git-fixes.patch 2015-04-14 12:04:46 UTC (rev 236532) @@ -1,128 +0,0 @@ -From 127aae5a72a69df325fed0b63d345e81583d5ca1 Mon Sep 17 00:00:00 2001 -From: Chris Wilson <ch...@chris-wilson.co.uk> -Date: Mon, 16 Feb 2015 21:37:35 +0000 -Subject: tools/intel-virtual-output: Check for DRI3 more carefully - -Using xcb, we cannot simply call xcb_dri3_query_version() without it -terminating the connection if DRI3 is not enabled on the target display. -Oops. - -Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89172 -Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> - -diff --git a/tools/virtual.c b/tools/virtual.c -index 8e2b4a2..3bcd057 100644 ---- a/tools/virtual.c -+++ b/tools/virtual.c -@@ -218,6 +218,13 @@ static inline XRRScreenResources *_XRRGetScreenResourcesCurrent(Display *dpy, Wi - static int _x_error_occurred; - - static int -+_io_error_handler(Display *display) -+{ -+ fprintf(stderr, "XIO error on display %s\n", DisplayString(display)); -+ abort(); -+} -+ -+static int - _check_error_handler(Display *display, - XErrorEvent *event) - { -@@ -320,6 +327,7 @@ can_use_shm(Display *dpy, - #include <X11/Xlib-xcb.h> - #include <X11/xshmfence.h> - #include <xcb/xcb.h> -+#include <xcb/xcbext.h> - #include <xcb/dri3.h> - #include <xcb/sync.h> - static Pixmap dri3_create_pixmap(Display *dpy, -@@ -357,6 +365,7 @@ static int dri3_query_version(Display *dpy, int *major, int *minor) - { - xcb_connection_t *c = XGetXCBConnection(dpy); - xcb_dri3_query_version_reply_t *reply; -+ xcb_generic_error_t *error; - - *major = *minor = -1; - -@@ -364,7 +373,8 @@ static int dri3_query_version(Display *dpy, int *major, int *minor) - xcb_dri3_query_version(c, - XCB_DRI3_MAJOR_VERSION, - XCB_DRI3_MINOR_VERSION), -- NULL); -+ &error); -+ free(error); - if (reply == NULL) - return -1; - -@@ -377,8 +387,14 @@ static int dri3_query_version(Display *dpy, int *major, int *minor) - - static int dri3_exists(Display *dpy) - { -+ xcb_extension_t dri3 = { "DRI3", 0 }; -+ const xcb_query_extension_reply_t *ext; - int major, minor; - -+ ext = xcb_get_extension_data(XGetXCBConnection(dpy), &dri3); -+ if (ext == NULL || !ext->present) -+ return 0; -+ - if (dri3_query_version(dpy, &major, &minor) < 0) - return 0; - -@@ -3228,6 +3244,7 @@ int main(int argc, char **argv) - return -ret; - - XSetErrorHandler(_check_error_handler); -+ XSetIOErrorHandler(_io_error_handler); - - ret = add_fd(&ctx, display_open(&ctx, src_name)); - if (ret) { --- -cgit v0.10.2 -From db82617464e55432522e6199a88408ff0187f6ff Mon Sep 17 00:00:00 2001 -From: Chris Wilson <ch...@chris-wilson.co.uk> -Date: Wed, 4 Mar 2015 17:12:30 +0000 -Subject: sna: Decouple RandR pointers early in CloseScreen - -RR resources are freed before CloseScreen (as they are a ServerClient -resource), but on entering our CloseScreen callbacks we are left with a -set of stale pointers. Decouple those before proceeding so that we are -not tempted to dereference them. - -Bugzilla: https://bugs.archlinux.org/task/43906 -Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> - -diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c -index 88db508..fd6c46c 100644 ---- a/src/sna/sna_display.c -+++ b/src/sna/sna_display.c -@@ -6292,9 +6292,26 @@ sna_mode_enable(struct sna *sna) - sna->mode.dirty = false; - } - -+static void sna_randr_close(struct sna *sna) -+{ -+ xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(sna->scrn); -+ int n; -+ -+ /* The RR structs are freed early during CloseScreen as they -+ * are tracked as Resources. However, we may be tempted to -+ * access them during shutdown so decouple them now. -+ */ -+ for (n = 0; n < config->num_output; n++) -+ config->output[n]->randr_output = NULL; -+ -+ for (n = 0; n < config->num_crtc; n++) -+ config->crtc[n]->randr_crtc = NULL; -+} -+ - void - sna_mode_close(struct sna *sna) - { -+ sna_randr_close(sna); - sna_mode_wakeup(sna); - - if (sna->flags & SNA_IS_HOSTED) --- -cgit v0.10.2 - Copied: xf86-video-intel/repos/extra-i686/git-fixes.patch (from rev 236531, xf86-video-intel/trunk/git-fixes.patch) =================================================================== --- extra-i686/git-fixes.patch (rev 0) +++ extra-i686/git-fixes.patch 2015-04-14 12:04:46 UTC (rev 236532) @@ -0,0 +1,175 @@ +From 127aae5a72a69df325fed0b63d345e81583d5ca1 Mon Sep 17 00:00:00 2001 +From: Chris Wilson <ch...@chris-wilson.co.uk> +Date: Mon, 16 Feb 2015 21:37:35 +0000 +Subject: tools/intel-virtual-output: Check for DRI3 more carefully + +Using xcb, we cannot simply call xcb_dri3_query_version() without it +terminating the connection if DRI3 is not enabled on the target display. +Oops. + +Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89172 +Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> + +diff --git a/tools/virtual.c b/tools/virtual.c +index 8e2b4a2..3bcd057 100644 +--- a/tools/virtual.c ++++ b/tools/virtual.c +@@ -218,6 +218,13 @@ static inline XRRScreenResources *_XRRGetScreenResourcesCurrent(Display *dpy, Wi + static int _x_error_occurred; + + static int ++_io_error_handler(Display *display) ++{ ++ fprintf(stderr, "XIO error on display %s\n", DisplayString(display)); ++ abort(); ++} ++ ++static int + _check_error_handler(Display *display, + XErrorEvent *event) + { +@@ -320,6 +327,7 @@ can_use_shm(Display *dpy, + #include <X11/Xlib-xcb.h> + #include <X11/xshmfence.h> + #include <xcb/xcb.h> ++#include <xcb/xcbext.h> + #include <xcb/dri3.h> + #include <xcb/sync.h> + static Pixmap dri3_create_pixmap(Display *dpy, +@@ -357,6 +365,7 @@ static int dri3_query_version(Display *dpy, int *major, int *minor) + { + xcb_connection_t *c = XGetXCBConnection(dpy); + xcb_dri3_query_version_reply_t *reply; ++ xcb_generic_error_t *error; + + *major = *minor = -1; + +@@ -364,7 +373,8 @@ static int dri3_query_version(Display *dpy, int *major, int *minor) + xcb_dri3_query_version(c, + XCB_DRI3_MAJOR_VERSION, + XCB_DRI3_MINOR_VERSION), +- NULL); ++ &error); ++ free(error); + if (reply == NULL) + return -1; + +@@ -377,8 +387,14 @@ static int dri3_query_version(Display *dpy, int *major, int *minor) + + static int dri3_exists(Display *dpy) + { ++ xcb_extension_t dri3 = { "DRI3", 0 }; ++ const xcb_query_extension_reply_t *ext; + int major, minor; + ++ ext = xcb_get_extension_data(XGetXCBConnection(dpy), &dri3); ++ if (ext == NULL || !ext->present) ++ return 0; ++ + if (dri3_query_version(dpy, &major, &minor) < 0) + return 0; + +@@ -3228,6 +3244,7 @@ int main(int argc, char **argv) + return -ret; + + XSetErrorHandler(_check_error_handler); ++ XSetIOErrorHandler(_io_error_handler); + + ret = add_fd(&ctx, display_open(&ctx, src_name)); + if (ret) { +-- +cgit v0.10.2 +From db82617464e55432522e6199a88408ff0187f6ff Mon Sep 17 00:00:00 2001 +From: Chris Wilson <ch...@chris-wilson.co.uk> +Date: Wed, 4 Mar 2015 17:12:30 +0000 +Subject: sna: Decouple RandR pointers early in CloseScreen + +RR resources are freed before CloseScreen (as they are a ServerClient +resource), but on entering our CloseScreen callbacks we are left with a +set of stale pointers. Decouple those before proceeding so that we are +not tempted to dereference them. + +Bugzilla: https://bugs.archlinux.org/task/43906 +Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> + +diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c +index 88db508..fd6c46c 100644 +--- a/src/sna/sna_display.c ++++ b/src/sna/sna_display.c +@@ -6292,9 +6292,26 @@ sna_mode_enable(struct sna *sna) + sna->mode.dirty = false; + } + ++static void sna_randr_close(struct sna *sna) ++{ ++ xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(sna->scrn); ++ int n; ++ ++ /* The RR structs are freed early during CloseScreen as they ++ * are tracked as Resources. However, we may be tempted to ++ * access them during shutdown so decouple them now. ++ */ ++ for (n = 0; n < config->num_output; n++) ++ config->output[n]->randr_output = NULL; ++ ++ for (n = 0; n < config->num_crtc; n++) ++ config->crtc[n]->randr_crtc = NULL; ++} ++ + void + sna_mode_close(struct sna *sna) + { ++ sna_randr_close(sna); + sna_mode_wakeup(sna); + + if (sna->flags & SNA_IS_HOSTED) +-- +cgit v0.10.2 +From 9c109f3dc56621215e580e74a6161f00035bdac3 Mon Sep 17 00:00:00 2001 +From: Chris Wilson <ch...@chris-wilson.co.uk> +Date: Sun, 12 Apr 2015 21:15:54 +0100 +Subject: [PATCH] sna: Mark the GPU as available before doing the mode restore + on VT enter + +Sometimes we want to render with the GPU when doing a mode switch, e.g. +if we need to initialise an output surface. To do so, we need to prepare +the acceleration layer first. + +Lots of thanks to Vasily for tracking this one down. + +Reported-by: Vasily Khoruzhick <anars...@gmail.com> +Bugzilla: https://bugs.archlinux.org/task/43534 +Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> +--- + src/sna/sna_driver.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/sna/sna_driver.c b/src/sna/sna_driver.c +index 31500e7..488ca9b 100644 +--- a/src/sna/sna_driver.c ++++ b/src/sna/sna_driver.c +@@ -1213,6 +1213,8 @@ static Bool sna_enter_vt(VT_FUNC_ARGS_DECL) + if (intel_get_master(sna->dev)) + return FALSE; + ++ sna_accel_enter(sna); ++ + if (sna->flags & SNA_REPROBE) { + DBG(("%s: reporting deferred hotplug event\n", __FUNCTION__)); + sna_mode_discover(sna); +@@ -1221,11 +1223,11 @@ static Bool sna_enter_vt(VT_FUNC_ARGS_DECL) + sna_mode_check(sna); + + if (!sna_set_desired_mode(sna)) { ++ sna_accel_leave(sna); + intel_put_master(sna->dev); + return FALSE; + } + +- sna_accel_enter(sna); + return TRUE; + } + +-- +2.3.5 + Deleted: extra-i686/xf86-video-intel.install =================================================================== --- extra-i686/xf86-video-intel.install 2015-04-14 12:04:37 UTC (rev 236531) +++ extra-i686/xf86-video-intel.install 2015-04-14 12:04:46 UTC (rev 236532) @@ -1,20 +0,0 @@ -post_upgrade() { - if (( $(vercmp $2 2.21.15) < 0 )); then - post_install - fi -} - -post_install() { - cat <<MSG ->>> This driver uses SNA as the default acceleration method. You can try - falling back to UXA if you run into trouble. To do so, save a file with - the following content as /etc/X11/xorg.conf.d/20-intel.conf : - Section "Device" - Identifier "Intel Graphics" - Driver "intel" - Option "AccelMethod" "uxa" - #Option "AccelMethod" "sna" - EndSection -MSG -} - Copied: xf86-video-intel/repos/extra-i686/xf86-video-intel.install (from rev 236531, xf86-video-intel/trunk/xf86-video-intel.install) =================================================================== --- extra-i686/xf86-video-intel.install (rev 0) +++ extra-i686/xf86-video-intel.install 2015-04-14 12:04:46 UTC (rev 236532) @@ -0,0 +1,20 @@ +post_upgrade() { + if (( $(vercmp $2 2.21.15) < 0 )); then + post_install + fi +} + +post_install() { + cat <<MSG +>>> This driver uses SNA as the default acceleration method. You can try + falling back to UXA if you run into trouble. To do so, save a file with + the following content as /etc/X11/xorg.conf.d/20-intel.conf : + Section "Device" + Identifier "Intel Graphics" + Driver "intel" + Option "AccelMethod" "uxa" + #Option "AccelMethod" "sna" + EndSection +MSG +} + Deleted: extra-x86_64/PKGBUILD =================================================================== --- extra-x86_64/PKGBUILD 2015-04-14 12:04:37 UTC (rev 236531) +++ extra-x86_64/PKGBUILD 2015-04-14 12:04:46 UTC (rev 236532) @@ -1,55 +0,0 @@ -# $Id$ -# Maintainer: AndyRTR <andy...@archlinux.org> -# Maintainer: Jan de Groot <j...@archlinux.org> - -pkgname=xf86-video-intel -pkgver=2.99.917 -pkgrel=4 -arch=(i686 x86_64) -url="http://xorg.freedesktop.org/" -license=('custom') -install=$pkgname.install -pkgdesc="X.org Intel i810/i830/i915/945G/G965+ video drivers" -depends=('mesa-dri' 'libxvmc' 'pixman' 'xcb-util>=0.3.9') -makedepends=('xorg-server-devel' 'X-ABI-VIDEODRV_VERSION=19' 'libx11' 'libxrender' - # additional deps for intel-virtual-output - 'libxrandr' 'libxinerama' 'libxcursor' 'libxtst') -optdepends=('libxrandr: for intel-virtual-output' - 'libxinerama: for intel-virtual-output' - 'libxcursor: for intel-virtual-output' - 'libxtst: for intel-virtual-output') -replaces=('xf86-video-intel-uxa' 'xf86-video-intel-sna') -provides=('xf86-video-intel-uxa' 'xf86-video-intel-sna') -conflicts=('xorg-server<1.16' 'X-ABI-VIDEODRV_VERSION<19' 'X-ABI-VIDEODRV_VERSION>=20' - 'xf86-video-intel-sna' 'xf86-video-intel-uxa' 'xf86-video-i810' 'xf86-video-intel-legacy') -groups=('xorg-drivers' 'xorg') -source=(${url}/archive/individual/driver/${pkgname}-${pkgver}.tar.bz2 - git-fixes.patch) -sha256sums=('00b781eea055582820a123c47b62411bdf6aabf4f03dc0568faec55faf9667c9' - '9216b69b7e01b6910b4758c4e346d84a43198ee516f6b239bf43c4e172a9c922') - -prepare() { - cd ${pkgname}-${pkgver} - # fix FS#43840, FS#43906 - patch -Np1 -i ../git-fixes.patch -} - -build() { - cd ${pkgname}-${pkgver} - ./configure --prefix=/usr --libexecdir=/usr/lib - make -} - -check() { - cd $pkgname-$pkgver - make check -} - -package() { - cd ${pkgname}-${pkgver} - - make DESTDIR="${pkgdir}" install - - install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" - install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" -} Copied: xf86-video-intel/repos/extra-x86_64/PKGBUILD (from rev 236531, xf86-video-intel/trunk/PKGBUILD) =================================================================== --- extra-x86_64/PKGBUILD (rev 0) +++ extra-x86_64/PKGBUILD 2015-04-14 12:04:46 UTC (rev 236532) @@ -0,0 +1,55 @@ +# $Id$ +# Maintainer: AndyRTR <andy...@archlinux.org> +# Maintainer: Jan de Groot <j...@archlinux.org> + +pkgname=xf86-video-intel +pkgver=2.99.917 +pkgrel=5 +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +license=('custom') +install=$pkgname.install +pkgdesc="X.org Intel i810/i830/i915/945G/G965+ video drivers" +depends=('mesa-dri' 'libxvmc' 'pixman' 'xcb-util>=0.3.9') +makedepends=('xorg-server-devel' 'X-ABI-VIDEODRV_VERSION=19' 'libx11' 'libxrender' + # additional deps for intel-virtual-output + 'libxrandr' 'libxinerama' 'libxcursor' 'libxtst') +optdepends=('libxrandr: for intel-virtual-output' + 'libxinerama: for intel-virtual-output' + 'libxcursor: for intel-virtual-output' + 'libxtst: for intel-virtual-output') +replaces=('xf86-video-intel-uxa' 'xf86-video-intel-sna') +provides=('xf86-video-intel-uxa' 'xf86-video-intel-sna') +conflicts=('xorg-server<1.16' 'X-ABI-VIDEODRV_VERSION<19' 'X-ABI-VIDEODRV_VERSION>=20' + 'xf86-video-intel-sna' 'xf86-video-intel-uxa' 'xf86-video-i810' 'xf86-video-intel-legacy') +groups=('xorg-drivers' 'xorg') +source=(${url}/archive/individual/driver/${pkgname}-${pkgver}.tar.bz2 + git-fixes.patch) +sha256sums=('00b781eea055582820a123c47b62411bdf6aabf4f03dc0568faec55faf9667c9' + '3b38b844fbc8088401ebbbafbbf1399d87f077caa5020cbd822487b7d26514e0') + +prepare() { + cd ${pkgname}-${pkgver} + # fix FS#43840, FS#43906 + patch -Np1 -i ../git-fixes.patch +} + +build() { + cd ${pkgname}-${pkgver} + ./configure --prefix=/usr --libexecdir=/usr/lib + make +} + +check() { + cd $pkgname-$pkgver + make check +} + +package() { + cd ${pkgname}-${pkgver} + + make DESTDIR="${pkgdir}" install + + install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" + install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" +} Deleted: extra-x86_64/git-fixes.patch =================================================================== --- extra-x86_64/git-fixes.patch 2015-04-14 12:04:37 UTC (rev 236531) +++ extra-x86_64/git-fixes.patch 2015-04-14 12:04:46 UTC (rev 236532) @@ -1,128 +0,0 @@ -From 127aae5a72a69df325fed0b63d345e81583d5ca1 Mon Sep 17 00:00:00 2001 -From: Chris Wilson <ch...@chris-wilson.co.uk> -Date: Mon, 16 Feb 2015 21:37:35 +0000 -Subject: tools/intel-virtual-output: Check for DRI3 more carefully - -Using xcb, we cannot simply call xcb_dri3_query_version() without it -terminating the connection if DRI3 is not enabled on the target display. -Oops. - -Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89172 -Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> - -diff --git a/tools/virtual.c b/tools/virtual.c -index 8e2b4a2..3bcd057 100644 ---- a/tools/virtual.c -+++ b/tools/virtual.c -@@ -218,6 +218,13 @@ static inline XRRScreenResources *_XRRGetScreenResourcesCurrent(Display *dpy, Wi - static int _x_error_occurred; - - static int -+_io_error_handler(Display *display) -+{ -+ fprintf(stderr, "XIO error on display %s\n", DisplayString(display)); -+ abort(); -+} -+ -+static int - _check_error_handler(Display *display, - XErrorEvent *event) - { -@@ -320,6 +327,7 @@ can_use_shm(Display *dpy, - #include <X11/Xlib-xcb.h> - #include <X11/xshmfence.h> - #include <xcb/xcb.h> -+#include <xcb/xcbext.h> - #include <xcb/dri3.h> - #include <xcb/sync.h> - static Pixmap dri3_create_pixmap(Display *dpy, -@@ -357,6 +365,7 @@ static int dri3_query_version(Display *dpy, int *major, int *minor) - { - xcb_connection_t *c = XGetXCBConnection(dpy); - xcb_dri3_query_version_reply_t *reply; -+ xcb_generic_error_t *error; - - *major = *minor = -1; - -@@ -364,7 +373,8 @@ static int dri3_query_version(Display *dpy, int *major, int *minor) - xcb_dri3_query_version(c, - XCB_DRI3_MAJOR_VERSION, - XCB_DRI3_MINOR_VERSION), -- NULL); -+ &error); -+ free(error); - if (reply == NULL) - return -1; - -@@ -377,8 +387,14 @@ static int dri3_query_version(Display *dpy, int *major, int *minor) - - static int dri3_exists(Display *dpy) - { -+ xcb_extension_t dri3 = { "DRI3", 0 }; -+ const xcb_query_extension_reply_t *ext; - int major, minor; - -+ ext = xcb_get_extension_data(XGetXCBConnection(dpy), &dri3); -+ if (ext == NULL || !ext->present) -+ return 0; -+ - if (dri3_query_version(dpy, &major, &minor) < 0) - return 0; - -@@ -3228,6 +3244,7 @@ int main(int argc, char **argv) - return -ret; - - XSetErrorHandler(_check_error_handler); -+ XSetIOErrorHandler(_io_error_handler); - - ret = add_fd(&ctx, display_open(&ctx, src_name)); - if (ret) { --- -cgit v0.10.2 -From db82617464e55432522e6199a88408ff0187f6ff Mon Sep 17 00:00:00 2001 -From: Chris Wilson <ch...@chris-wilson.co.uk> -Date: Wed, 4 Mar 2015 17:12:30 +0000 -Subject: sna: Decouple RandR pointers early in CloseScreen - -RR resources are freed before CloseScreen (as they are a ServerClient -resource), but on entering our CloseScreen callbacks we are left with a -set of stale pointers. Decouple those before proceeding so that we are -not tempted to dereference them. - -Bugzilla: https://bugs.archlinux.org/task/43906 -Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> - -diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c -index 88db508..fd6c46c 100644 ---- a/src/sna/sna_display.c -+++ b/src/sna/sna_display.c -@@ -6292,9 +6292,26 @@ sna_mode_enable(struct sna *sna) - sna->mode.dirty = false; - } - -+static void sna_randr_close(struct sna *sna) -+{ -+ xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(sna->scrn); -+ int n; -+ -+ /* The RR structs are freed early during CloseScreen as they -+ * are tracked as Resources. However, we may be tempted to -+ * access them during shutdown so decouple them now. -+ */ -+ for (n = 0; n < config->num_output; n++) -+ config->output[n]->randr_output = NULL; -+ -+ for (n = 0; n < config->num_crtc; n++) -+ config->crtc[n]->randr_crtc = NULL; -+} -+ - void - sna_mode_close(struct sna *sna) - { -+ sna_randr_close(sna); - sna_mode_wakeup(sna); - - if (sna->flags & SNA_IS_HOSTED) --- -cgit v0.10.2 - Copied: xf86-video-intel/repos/extra-x86_64/git-fixes.patch (from rev 236531, xf86-video-intel/trunk/git-fixes.patch) =================================================================== --- extra-x86_64/git-fixes.patch (rev 0) +++ extra-x86_64/git-fixes.patch 2015-04-14 12:04:46 UTC (rev 236532) @@ -0,0 +1,175 @@ +From 127aae5a72a69df325fed0b63d345e81583d5ca1 Mon Sep 17 00:00:00 2001 +From: Chris Wilson <ch...@chris-wilson.co.uk> +Date: Mon, 16 Feb 2015 21:37:35 +0000 +Subject: tools/intel-virtual-output: Check for DRI3 more carefully + +Using xcb, we cannot simply call xcb_dri3_query_version() without it +terminating the connection if DRI3 is not enabled on the target display. +Oops. + +Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89172 +Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> + +diff --git a/tools/virtual.c b/tools/virtual.c +index 8e2b4a2..3bcd057 100644 +--- a/tools/virtual.c ++++ b/tools/virtual.c +@@ -218,6 +218,13 @@ static inline XRRScreenResources *_XRRGetScreenResourcesCurrent(Display *dpy, Wi + static int _x_error_occurred; + + static int ++_io_error_handler(Display *display) ++{ ++ fprintf(stderr, "XIO error on display %s\n", DisplayString(display)); ++ abort(); ++} ++ ++static int + _check_error_handler(Display *display, + XErrorEvent *event) + { +@@ -320,6 +327,7 @@ can_use_shm(Display *dpy, + #include <X11/Xlib-xcb.h> + #include <X11/xshmfence.h> + #include <xcb/xcb.h> ++#include <xcb/xcbext.h> + #include <xcb/dri3.h> + #include <xcb/sync.h> + static Pixmap dri3_create_pixmap(Display *dpy, +@@ -357,6 +365,7 @@ static int dri3_query_version(Display *dpy, int *major, int *minor) + { + xcb_connection_t *c = XGetXCBConnection(dpy); + xcb_dri3_query_version_reply_t *reply; ++ xcb_generic_error_t *error; + + *major = *minor = -1; + +@@ -364,7 +373,8 @@ static int dri3_query_version(Display *dpy, int *major, int *minor) + xcb_dri3_query_version(c, + XCB_DRI3_MAJOR_VERSION, + XCB_DRI3_MINOR_VERSION), +- NULL); ++ &error); ++ free(error); + if (reply == NULL) + return -1; + +@@ -377,8 +387,14 @@ static int dri3_query_version(Display *dpy, int *major, int *minor) + + static int dri3_exists(Display *dpy) + { ++ xcb_extension_t dri3 = { "DRI3", 0 }; ++ const xcb_query_extension_reply_t *ext; + int major, minor; + ++ ext = xcb_get_extension_data(XGetXCBConnection(dpy), &dri3); ++ if (ext == NULL || !ext->present) ++ return 0; ++ + if (dri3_query_version(dpy, &major, &minor) < 0) + return 0; + +@@ -3228,6 +3244,7 @@ int main(int argc, char **argv) + return -ret; + + XSetErrorHandler(_check_error_handler); ++ XSetIOErrorHandler(_io_error_handler); + + ret = add_fd(&ctx, display_open(&ctx, src_name)); + if (ret) { +-- +cgit v0.10.2 +From db82617464e55432522e6199a88408ff0187f6ff Mon Sep 17 00:00:00 2001 +From: Chris Wilson <ch...@chris-wilson.co.uk> +Date: Wed, 4 Mar 2015 17:12:30 +0000 +Subject: sna: Decouple RandR pointers early in CloseScreen + +RR resources are freed before CloseScreen (as they are a ServerClient +resource), but on entering our CloseScreen callbacks we are left with a +set of stale pointers. Decouple those before proceeding so that we are +not tempted to dereference them. + +Bugzilla: https://bugs.archlinux.org/task/43906 +Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> + +diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c +index 88db508..fd6c46c 100644 +--- a/src/sna/sna_display.c ++++ b/src/sna/sna_display.c +@@ -6292,9 +6292,26 @@ sna_mode_enable(struct sna *sna) + sna->mode.dirty = false; + } + ++static void sna_randr_close(struct sna *sna) ++{ ++ xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(sna->scrn); ++ int n; ++ ++ /* The RR structs are freed early during CloseScreen as they ++ * are tracked as Resources. However, we may be tempted to ++ * access them during shutdown so decouple them now. ++ */ ++ for (n = 0; n < config->num_output; n++) ++ config->output[n]->randr_output = NULL; ++ ++ for (n = 0; n < config->num_crtc; n++) ++ config->crtc[n]->randr_crtc = NULL; ++} ++ + void + sna_mode_close(struct sna *sna) + { ++ sna_randr_close(sna); + sna_mode_wakeup(sna); + + if (sna->flags & SNA_IS_HOSTED) +-- +cgit v0.10.2 +From 9c109f3dc56621215e580e74a6161f00035bdac3 Mon Sep 17 00:00:00 2001 +From: Chris Wilson <ch...@chris-wilson.co.uk> +Date: Sun, 12 Apr 2015 21:15:54 +0100 +Subject: [PATCH] sna: Mark the GPU as available before doing the mode restore + on VT enter + +Sometimes we want to render with the GPU when doing a mode switch, e.g. +if we need to initialise an output surface. To do so, we need to prepare +the acceleration layer first. + +Lots of thanks to Vasily for tracking this one down. + +Reported-by: Vasily Khoruzhick <anars...@gmail.com> +Bugzilla: https://bugs.archlinux.org/task/43534 +Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> +--- + src/sna/sna_driver.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/sna/sna_driver.c b/src/sna/sna_driver.c +index 31500e7..488ca9b 100644 +--- a/src/sna/sna_driver.c ++++ b/src/sna/sna_driver.c +@@ -1213,6 +1213,8 @@ static Bool sna_enter_vt(VT_FUNC_ARGS_DECL) + if (intel_get_master(sna->dev)) + return FALSE; + ++ sna_accel_enter(sna); ++ + if (sna->flags & SNA_REPROBE) { + DBG(("%s: reporting deferred hotplug event\n", __FUNCTION__)); + sna_mode_discover(sna); +@@ -1221,11 +1223,11 @@ static Bool sna_enter_vt(VT_FUNC_ARGS_DECL) + sna_mode_check(sna); + + if (!sna_set_desired_mode(sna)) { ++ sna_accel_leave(sna); + intel_put_master(sna->dev); + return FALSE; + } + +- sna_accel_enter(sna); + return TRUE; + } + +-- +2.3.5 + Deleted: extra-x86_64/xf86-video-intel.install =================================================================== --- extra-x86_64/xf86-video-intel.install 2015-04-14 12:04:37 UTC (rev 236531) +++ extra-x86_64/xf86-video-intel.install 2015-04-14 12:04:46 UTC (rev 236532) @@ -1,20 +0,0 @@ -post_upgrade() { - if (( $(vercmp $2 2.21.15) < 0 )); then - post_install - fi -} - -post_install() { - cat <<MSG ->>> This driver uses SNA as the default acceleration method. You can try - falling back to UXA if you run into trouble. To do so, save a file with - the following content as /etc/X11/xorg.conf.d/20-intel.conf : - Section "Device" - Identifier "Intel Graphics" - Driver "intel" - Option "AccelMethod" "uxa" - #Option "AccelMethod" "sna" - EndSection -MSG -} - Copied: xf86-video-intel/repos/extra-x86_64/xf86-video-intel.install (from rev 236531, xf86-video-intel/trunk/xf86-video-intel.install) =================================================================== --- extra-x86_64/xf86-video-intel.install (rev 0) +++ extra-x86_64/xf86-video-intel.install 2015-04-14 12:04:46 UTC (rev 236532) @@ -0,0 +1,20 @@ +post_upgrade() { + if (( $(vercmp $2 2.21.15) < 0 )); then + post_install + fi +} + +post_install() { + cat <<MSG +>>> This driver uses SNA as the default acceleration method. You can try + falling back to UXA if you run into trouble. To do so, save a file with + the following content as /etc/X11/xorg.conf.d/20-intel.conf : + Section "Device" + Identifier "Intel Graphics" + Driver "intel" + Option "AccelMethod" "uxa" + #Option "AccelMethod" "sna" + EndSection +MSG +} +