diff options
author | Yurii Kolesnykov | 2019-09-28 16:40:01 +0300 |
---|---|---|
committer | Yurii Kolesnykov | 2019-09-28 16:40:01 +0300 |
commit | 1e4ff6f909261ce8c3a596cb52ce4f5ba24b582a (patch) | |
tree | 313bc2f2cd77c1dd28505e460f648aa710a47a0f | |
parent | 6f6bb0ed7a3117bc4d4f9c784876c1a7e5a5d6e7 (diff) | |
download | aur-1e4ff6f909261ce8c3a596cb52ce4f5ba24b582a.tar.gz |
2.99.917+892+gc6cb1b19
Signed-off-by: Yurii Kolesnykov <root@yurikoles.com>
-rw-r--r-- | .SRCINFO | 4 | ||||
-rw-r--r-- | 0001-SNA-fix-PRIME-output-support-since-xserver-1.20.patch | 93 | ||||
-rw-r--r-- | PKGBUILD | 10 |
3 files changed, 5 insertions, 102 deletions
@@ -1,6 +1,6 @@ pkgbase = xf86-video-intel-git pkgdesc = X.org Intel i810/i830/i915/945G/G965+ video drivers - pkgver = 2.99.917+870+g6f4972d5 + pkgver = 2.99.917+892+gc6cb1b19 pkgrel = 1 epoch = 1 url = https://01.org/linuxgraphics @@ -41,9 +41,7 @@ pkgbase = xf86-video-intel-git replaces = xf86-video-intel-uxa replaces = xf86-video-intel-sna source = xf86-video-intel-git::git+https://gitlab.freedesktop.org/xorg/driver/xf86-video-intel.git - source = 0001-SNA-fix-PRIME-output-support-since-xserver-1.20.patch sha256sums = SKIP - sha256sums = 7cdc310953379ede9693a387ecac6c803cc4c4461df5ad9ab875b35e90a552f5 pkgname = xf86-video-intel-git diff --git a/0001-SNA-fix-PRIME-output-support-since-xserver-1.20.patch b/0001-SNA-fix-PRIME-output-support-since-xserver-1.20.patch deleted file mode 100644 index ca794780babd..000000000000 --- a/0001-SNA-fix-PRIME-output-support-since-xserver-1.20.patch +++ /dev/null @@ -1,93 +0,0 @@ -From e85424325911626556fbe5a313c698a5da701163 Mon Sep 17 00:00:00 2001 -From: Peter Wu <peter@lekensteyn.nl> -Date: Mon, 13 Aug 2018 22:59:50 +0200 -Subject: [PATCH xf86-video-intel] SNA: fix PRIME output support since xserver - 1.20 - -Since xorg-server 1.20, an external monitor would remain blank when used -in a PRIME output slave setup. Only a cursor was visible. The cause is -"Make PixmapDirtyUpdateRec::src a DrawablePtr" in xserver, the "src" -pointer might point to the root window (created by the server) instead -of a pixmap (as created by xf86-video-intel). Use get_drawable_pixmap to -handle both cases. - -When built with -fsanitize=address, the following test will trigger a -heap-buffer-overflow error due to to_sna_from_pixmap receiving a window -instead of a pixmap. - -Test on a hybrid graphics laptop (Intel + modesetting/nouveau): - - xrandr --setprovideroutputsource modesetting Intel - xrandr --output DP-1-1 --mode 2560x1440 # should not crash - glxgears # should display gears on both screens - -Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=100086 -Signed-off-by: Peter Wu <peter@lekensteyn.nl> ---- -Tested with xserver 1.20.1 with ASAN enabled. Survives multiple -resolution changes, works with a Plasma desktop session, it seems -stable. Something like this patch is required to make multi-monitor -setups usable in a hybrid graphics setting with Xorg 1.20. ---- - src/sna/sna_accel.c | 18 ++++++++++++++++++ - 1 file changed, 18 insertions(+) - -diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c -index 2f669bcf..80b116a3 100644 ---- a/src/sna/sna_accel.c -+++ b/src/sna/sna_accel.c -@@ -17510,7 +17510,11 @@ static bool has_offload_slaves(struct sna *sna) - PixmapDirtyUpdatePtr dirty; - - xorg_list_for_each_entry(dirty, &screen->pixmap_dirty_list, ent) { -+#ifdef HAS_DIRTYTRACKING_DRAWABLE_SRC -+ assert(dirty->src == &sna->front->drawable); -+#else - assert(dirty->src == sna->front); -+#endif - if (RegionNotEmpty(DamageRegion(dirty->damage))) - return true; - } -@@ -17671,7 +17675,11 @@ static void sna_accel_post_damage(struct sna *sna) - if (RegionNil(damage)) - continue; - -+#ifdef HAS_DIRTYTRACKING_DRAWABLE_SRC -+ src = get_drawable_pixmap(dirty->src); -+#else - src = dirty->src; -+#endif - dst = dirty->slave_dst->master_pixmap; - - region.extents.x1 = dirty->x; -@@ -17922,9 +17930,15 @@ migrate_dirty_tracking(PixmapPtr old_front, PixmapPtr new_front) - PixmapDirtyUpdatePtr dirty, safe; - - xorg_list_for_each_entry_safe(dirty, safe, &screen->pixmap_dirty_list, ent) { -+#ifdef HAS_DIRTYTRACKING_DRAWABLE_SRC -+ assert(dirty->src == &old_front->drawable); -+ if (dirty->src != &old_front->drawable) -+ continue; -+#else - assert(dirty->src == old_front); - if (dirty->src != old_front) - continue; -+#endif - - DamageUnregister(&dirty->src->drawable, dirty->damage); - DamageDestroy(dirty->damage); -@@ -17939,7 +17953,11 @@ migrate_dirty_tracking(PixmapPtr old_front, PixmapPtr new_front) - } - - DamageRegister(&new_front->drawable, dirty->damage); -+#ifdef HAS_DIRTYTRACKING_DRAWABLE_SRC -+ dirty->src = &new_front->drawable; -+#else - dirty->src = new_front; -+#endif - } - #endif - } --- -2.18.0 - @@ -4,7 +4,7 @@ pkgname=xf86-video-intel-git _pkgname=xf86-video-intel -pkgver=2.99.917+870+g6f4972d5 +pkgver=2.99.917+892+gc6cb1b19 pkgrel=1 epoch=1 arch=(x86_64) @@ -26,12 +26,10 @@ optdepends=('libxrandr: for intel-virtual-output' replaces=('xf86-video-intel-uxa' 'xf86-video-intel-sna') provides=("${_pkgname}" 'xf86-video-intel-uxa' 'xf86-video-intel-sna') conflicts=("${_pkgname}" 'xorg-server<1.20' 'xf86-video-intel-sna' - 'xf86-video-intel-sna' 'xf86-video-intel-uxa' 'xf86-video-i810' 'xf86-video-intel-legacy') + 'xf86-video-intel-sna' 'xf86-video-intel-uxa' 'xf86-video-i810' 'xf86-video-intel-legacy') groups=('xorg-drivers') -source=("$pkgname::git+https://gitlab.freedesktop.org/xorg/driver/${_pkgname}.git" - 0001-SNA-fix-PRIME-output-support-since-xserver-1.20.patch) -sha256sums=('SKIP' - '7cdc310953379ede9693a387ecac6c803cc4c4461df5ad9ab875b35e90a552f5') +source=("$pkgname::git+https://gitlab.freedesktop.org/xorg/driver/${_pkgname}.git") +sha256sums=('SKIP') pkgver() { cd $pkgname |