[arch-commits] Commit in xf86-video-intel/repos (8 files)

Laurent Carlier lcarlier at nymeria.archlinux.org
Sat Apr 5 13:04:19 UTC 2014


    Date: Saturday, April 5, 2014 @ 15:04:19
  Author: lcarlier
Revision: 209828

archrelease: copy trunk to testing-i686, testing-x86_64

Added:
  xf86-video-intel/repos/testing-i686/
  xf86-video-intel/repos/testing-i686/PKGBUILD
    (from rev 209827, xf86-video-intel/trunk/PKGBUILD)
  xf86-video-intel/repos/testing-i686/sna-avoid-discarding-damage.patch
    (from rev 209827, xf86-video-intel/trunk/sna-avoid-discarding-damage.patch)
  xf86-video-intel/repos/testing-i686/xf86-video-intel.install
    (from rev 209827, xf86-video-intel/trunk/xf86-video-intel.install)
  xf86-video-intel/repos/testing-x86_64/
  xf86-video-intel/repos/testing-x86_64/PKGBUILD
    (from rev 209827, xf86-video-intel/trunk/PKGBUILD)
  xf86-video-intel/repos/testing-x86_64/sna-avoid-discarding-damage.patch
    (from rev 209827, xf86-video-intel/trunk/sna-avoid-discarding-damage.patch)
  xf86-video-intel/repos/testing-x86_64/xf86-video-intel.install
    (from rev 209827, xf86-video-intel/trunk/xf86-video-intel.install)

--------------------------------------------------+
 testing-i686/PKGBUILD                            |   57 +++++++++++
 testing-i686/sna-avoid-discarding-damage.patch   |  103 +++++++++++++++++++++
 testing-i686/xf86-video-intel.install            |   22 ++++
 testing-x86_64/PKGBUILD                          |   57 +++++++++++
 testing-x86_64/sna-avoid-discarding-damage.patch |  103 +++++++++++++++++++++
 testing-x86_64/xf86-video-intel.install          |   22 ++++
 6 files changed, 364 insertions(+)

Copied: xf86-video-intel/repos/testing-i686/PKGBUILD (from rev 209827, xf86-video-intel/trunk/PKGBUILD)
===================================================================
--- testing-i686/PKGBUILD	                        (rev 0)
+++ testing-i686/PKGBUILD	2014-04-05 13:04:19 UTC (rev 209828)
@@ -0,0 +1,57 @@
+# $Id$
+# Maintainer: AndyRTR <andyrtr at archlinux.org>
+# Maintainer: Jan de Groot <jgc at archlinux.org>
+
+pkgname=xf86-video-intel
+pkgver=2.99.911
+pkgrel=1
+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=('intel-dri' 'libxvmc' 'pixman' 'xcb-util>=0.3.9' 'glamor-egl')
+makedepends=('xorg-server-devel' 'X-ABI-VIDEODRV_VERSION=15' '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.15.0' 'X-ABI-VIDEODRV_VERSION<15' 'X-ABI-VIDEODRV_VERSION>=16'
+           '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
+        sna-avoid-discarding-damage.patch)
+sha256sums=('4e7a68491bcc4d49912c5ec3ee688badce3f929ce1b7618ede9d8001827270d6'
+            '122637d66a70d40b098b0bb732000c8227ea1dd155af0c71f605f87934822dcb')
+
+prepare() {
+  cd ${pkgname}-${pkgver}
+  # Fix FS#39747 (merged upstream)
+  patch -Np1 -i ../sna-avoid-discarding-damage.patch
+}
+
+build() {
+  cd ${pkgname}-${pkgver}
+  ./configure --prefix=/usr \
+    --libexecdir=/usr/lib \
+    --enable-glamor
+  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/testing-i686/sna-avoid-discarding-damage.patch (from rev 209827, xf86-video-intel/trunk/sna-avoid-discarding-damage.patch)
===================================================================
--- testing-i686/sna-avoid-discarding-damage.patch	                        (rev 0)
+++ testing-i686/sna-avoid-discarding-damage.patch	2014-04-05 13:04:19 UTC (rev 209828)
@@ -0,0 +1,103 @@
+From 3310ee89c1f1a663de5f5b12b8125809a213996f Mon Sep 17 00:00:00 2001
+From: Chris Wilson <chris at chris-wilson.co.uk>
+Date: Sat, 05 Apr 2014 11:18:31 +0000
+Subject: sna: Avoid discarding damage when applying WHOLE hint to pixmap migration
+
+Once again, we must be careful when promoting from a region to whole
+pixmap migration that we do not discard required damage.
+
+Fixes regression from
+commit 27ac9f574f65cbd535751c925e9b2e2d7c8a6b3a [2.99.911]
+Author: Chris Wilson <chris at chris-wilson.co.uk>
+Date:   Thu Feb 27 08:33:52 2014 +0000
+
+    sna: Avoid promoting region-to-whole migration and discarding damage
+
+Reported-by: gedgon at gmail.com
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=77063
+Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
+---
+diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
+index 0116d54..71ba34d 100644
+--- a/src/sna/sna_accel.c
++++ b/src/sna/sna_accel.c
+@@ -2500,7 +2500,10 @@ sna_drawable_move_region_to_cpu(DrawablePtr drawable,
+ 		flags |= MOVE_INPLACE_HINT;
+ 	}
+ 
+-	if (flags & MOVE_WHOLE_HINT && priv->gpu_damage == NULL)
++	if ((flags & (MOVE_WHOLE_HINT | MOVE_READ)) == (MOVE_WHOLE_HINT | MOVE_READ))
++		return _sna_pixmap_move_to_cpu(pixmap, flags);
++
++	if (flags & MOVE_WHOLE_HINT && priv->gpu_damage == NULL && priv->cpu_damage == NULL)
+ 		return _sna_pixmap_move_to_cpu(pixmap, flags);
+ 
+ 	if (priv->gpu_damage == NULL &&
+@@ -2527,22 +2530,18 @@ sna_drawable_move_region_to_cpu(DrawablePtr drawable,
+ 		return _sna_pixmap_move_to_cpu(pixmap, flags);
+ 	}
+ 
+-	if ((flags & MOVE_READ) == 0 &&
+-	    priv->gpu_damage &&
+-	    region_subsumes_damage(region, priv->gpu_damage)) {
+-		DBG(("%s: region [(%d, %d), (%d, %d)] subsumes damage [(%d,%d), (%d, %d)]\n",
++	if (flags & MOVE_WHOLE_HINT) {
++		DBG(("%s: region (%d, %d), (%d, %d) marked with WHOLE hint, pixmap %dx%d\n",
+ 		       __FUNCTION__,
+ 		       region->extents.x1,
+ 		       region->extents.y1,
+ 		       region->extents.x2,
+ 		       region->extents.y2,
+-		       priv->gpu_damage->extents.x1,
+-		       priv->gpu_damage->extents.y1,
+-		       priv->gpu_damage->extents.x2,
+-		       priv->gpu_damage->extents.y2));
++		       pixmap->drawable.width,
++		       pixmap->drawable.height));
+ 		if (dx | dy)
+ 			RegionTranslate(region, -dx, -dy);
+-		return _sna_pixmap_move_to_cpu(pixmap, flags);
++		return _sna_pixmap_move_to_cpu(pixmap, flags | MOVE_READ);
+ 	}
+ 
+ 	if (priv->move_to_gpu && !priv->move_to_gpu(sna, priv, MOVE_READ)) {
+@@ -4471,17 +4470,19 @@ try_upload_tiled_x(PixmapPtr pixmap, RegionRec *region,
+ 	if (wedged(sna))
+ 		return false;
+ 
+-	DBG(("%s: bo? %d, can map? %d\n", __FUNCTION__,
+-	     priv->gpu_bo != NULL,
+-	     priv->gpu_bo ? kgem_bo_can_map__cpu(&sna->kgem, priv->gpu_bo, true) : 0));
+-
+ 	replaces = region->data == NULL &&
+ 		w >= pixmap->drawable.width &&
+ 		h >= pixmap->drawable.height;
+ 
++	DBG(("%s: bo? %d, can map? %d, replaces? %d\n", __FUNCTION__,
++	     priv->gpu_bo != NULL,
++	     priv->gpu_bo ? kgem_bo_can_map__cpu(&sna->kgem, priv->gpu_bo, true) : 0,
++	     replaces));
++
+ 	if (priv->gpu_bo && (replaces || priv->gpu_bo->proxy)) {
+ 		DBG(("%s: discarding cached upload proxy\n", __FUNCTION__));
+ 		sna_pixmap_free_gpu(sna, priv);
++		replaces = true; /* Mark it all GPU damaged afterwards */
+ 	}
+ 	assert(priv->gpu_bo == NULL || priv->gpu_bo->proxy == NULL);
+ 
+@@ -4616,8 +4617,11 @@ sna_put_zpixmap_blt(DrawablePtr drawable, GCPtr gc, RegionPtr region,
+ 		return true;
+ 
+ 	hint = MOVE_WRITE;
+-	if (w == pixmap->drawable.width && h*stride > 4096)
++	if (w == pixmap->drawable.width && (h+1)*stride > 65536) {
++		DBG(("%s: large upload (%d bytes), marking WHOLE_HINT\n",
++		     __FUNCTION__, h*stride));
+ 		hint |= MOVE_WHOLE_HINT;
++	}
+ 
+ 	if (!sna_drawable_move_region_to_cpu(&pixmap->drawable, region, hint))
+ 		return false;
+--
+cgit v0.9.0.2-2-gbebe
+

Copied: xf86-video-intel/repos/testing-i686/xf86-video-intel.install (from rev 209827, xf86-video-intel/trunk/xf86-video-intel.install)
===================================================================
--- testing-i686/xf86-video-intel.install	                        (rev 0)
+++ testing-i686/xf86-video-intel.install	2014-04-05 13:04:19 UTC (rev 209828)
@@ -0,0 +1,22 @@
+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
+    fall back to UXA if you run into trouble or test experimental
+    Glamor acceleration. 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"  "sna"
+        #Option      "AccelMethod"  "uxa"
+        #Option      "AccelMethod"  "glamor"
+      EndSection
+MSG
+}
+

Copied: xf86-video-intel/repos/testing-x86_64/PKGBUILD (from rev 209827, xf86-video-intel/trunk/PKGBUILD)
===================================================================
--- testing-x86_64/PKGBUILD	                        (rev 0)
+++ testing-x86_64/PKGBUILD	2014-04-05 13:04:19 UTC (rev 209828)
@@ -0,0 +1,57 @@
+# $Id$
+# Maintainer: AndyRTR <andyrtr at archlinux.org>
+# Maintainer: Jan de Groot <jgc at archlinux.org>
+
+pkgname=xf86-video-intel
+pkgver=2.99.911
+pkgrel=1
+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=('intel-dri' 'libxvmc' 'pixman' 'xcb-util>=0.3.9' 'glamor-egl')
+makedepends=('xorg-server-devel' 'X-ABI-VIDEODRV_VERSION=15' '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.15.0' 'X-ABI-VIDEODRV_VERSION<15' 'X-ABI-VIDEODRV_VERSION>=16'
+           '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
+        sna-avoid-discarding-damage.patch)
+sha256sums=('4e7a68491bcc4d49912c5ec3ee688badce3f929ce1b7618ede9d8001827270d6'
+            '122637d66a70d40b098b0bb732000c8227ea1dd155af0c71f605f87934822dcb')
+
+prepare() {
+  cd ${pkgname}-${pkgver}
+  # Fix FS#39747 (merged upstream)
+  patch -Np1 -i ../sna-avoid-discarding-damage.patch
+}
+
+build() {
+  cd ${pkgname}-${pkgver}
+  ./configure --prefix=/usr \
+    --libexecdir=/usr/lib \
+    --enable-glamor
+  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/testing-x86_64/sna-avoid-discarding-damage.patch (from rev 209827, xf86-video-intel/trunk/sna-avoid-discarding-damage.patch)
===================================================================
--- testing-x86_64/sna-avoid-discarding-damage.patch	                        (rev 0)
+++ testing-x86_64/sna-avoid-discarding-damage.patch	2014-04-05 13:04:19 UTC (rev 209828)
@@ -0,0 +1,103 @@
+From 3310ee89c1f1a663de5f5b12b8125809a213996f Mon Sep 17 00:00:00 2001
+From: Chris Wilson <chris at chris-wilson.co.uk>
+Date: Sat, 05 Apr 2014 11:18:31 +0000
+Subject: sna: Avoid discarding damage when applying WHOLE hint to pixmap migration
+
+Once again, we must be careful when promoting from a region to whole
+pixmap migration that we do not discard required damage.
+
+Fixes regression from
+commit 27ac9f574f65cbd535751c925e9b2e2d7c8a6b3a [2.99.911]
+Author: Chris Wilson <chris at chris-wilson.co.uk>
+Date:   Thu Feb 27 08:33:52 2014 +0000
+
+    sna: Avoid promoting region-to-whole migration and discarding damage
+
+Reported-by: gedgon at gmail.com
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=77063
+Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
+---
+diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
+index 0116d54..71ba34d 100644
+--- a/src/sna/sna_accel.c
++++ b/src/sna/sna_accel.c
+@@ -2500,7 +2500,10 @@ sna_drawable_move_region_to_cpu(DrawablePtr drawable,
+ 		flags |= MOVE_INPLACE_HINT;
+ 	}
+ 
+-	if (flags & MOVE_WHOLE_HINT && priv->gpu_damage == NULL)
++	if ((flags & (MOVE_WHOLE_HINT | MOVE_READ)) == (MOVE_WHOLE_HINT | MOVE_READ))
++		return _sna_pixmap_move_to_cpu(pixmap, flags);
++
++	if (flags & MOVE_WHOLE_HINT && priv->gpu_damage == NULL && priv->cpu_damage == NULL)
+ 		return _sna_pixmap_move_to_cpu(pixmap, flags);
+ 
+ 	if (priv->gpu_damage == NULL &&
+@@ -2527,22 +2530,18 @@ sna_drawable_move_region_to_cpu(DrawablePtr drawable,
+ 		return _sna_pixmap_move_to_cpu(pixmap, flags);
+ 	}
+ 
+-	if ((flags & MOVE_READ) == 0 &&
+-	    priv->gpu_damage &&
+-	    region_subsumes_damage(region, priv->gpu_damage)) {
+-		DBG(("%s: region [(%d, %d), (%d, %d)] subsumes damage [(%d,%d), (%d, %d)]\n",
++	if (flags & MOVE_WHOLE_HINT) {
++		DBG(("%s: region (%d, %d), (%d, %d) marked with WHOLE hint, pixmap %dx%d\n",
+ 		       __FUNCTION__,
+ 		       region->extents.x1,
+ 		       region->extents.y1,
+ 		       region->extents.x2,
+ 		       region->extents.y2,
+-		       priv->gpu_damage->extents.x1,
+-		       priv->gpu_damage->extents.y1,
+-		       priv->gpu_damage->extents.x2,
+-		       priv->gpu_damage->extents.y2));
++		       pixmap->drawable.width,
++		       pixmap->drawable.height));
+ 		if (dx | dy)
+ 			RegionTranslate(region, -dx, -dy);
+-		return _sna_pixmap_move_to_cpu(pixmap, flags);
++		return _sna_pixmap_move_to_cpu(pixmap, flags | MOVE_READ);
+ 	}
+ 
+ 	if (priv->move_to_gpu && !priv->move_to_gpu(sna, priv, MOVE_READ)) {
+@@ -4471,17 +4470,19 @@ try_upload_tiled_x(PixmapPtr pixmap, RegionRec *region,
+ 	if (wedged(sna))
+ 		return false;
+ 
+-	DBG(("%s: bo? %d, can map? %d\n", __FUNCTION__,
+-	     priv->gpu_bo != NULL,
+-	     priv->gpu_bo ? kgem_bo_can_map__cpu(&sna->kgem, priv->gpu_bo, true) : 0));
+-
+ 	replaces = region->data == NULL &&
+ 		w >= pixmap->drawable.width &&
+ 		h >= pixmap->drawable.height;
+ 
++	DBG(("%s: bo? %d, can map? %d, replaces? %d\n", __FUNCTION__,
++	     priv->gpu_bo != NULL,
++	     priv->gpu_bo ? kgem_bo_can_map__cpu(&sna->kgem, priv->gpu_bo, true) : 0,
++	     replaces));
++
+ 	if (priv->gpu_bo && (replaces || priv->gpu_bo->proxy)) {
+ 		DBG(("%s: discarding cached upload proxy\n", __FUNCTION__));
+ 		sna_pixmap_free_gpu(sna, priv);
++		replaces = true; /* Mark it all GPU damaged afterwards */
+ 	}
+ 	assert(priv->gpu_bo == NULL || priv->gpu_bo->proxy == NULL);
+ 
+@@ -4616,8 +4617,11 @@ sna_put_zpixmap_blt(DrawablePtr drawable, GCPtr gc, RegionPtr region,
+ 		return true;
+ 
+ 	hint = MOVE_WRITE;
+-	if (w == pixmap->drawable.width && h*stride > 4096)
++	if (w == pixmap->drawable.width && (h+1)*stride > 65536) {
++		DBG(("%s: large upload (%d bytes), marking WHOLE_HINT\n",
++		     __FUNCTION__, h*stride));
+ 		hint |= MOVE_WHOLE_HINT;
++	}
+ 
+ 	if (!sna_drawable_move_region_to_cpu(&pixmap->drawable, region, hint))
+ 		return false;
+--
+cgit v0.9.0.2-2-gbebe
+

Copied: xf86-video-intel/repos/testing-x86_64/xf86-video-intel.install (from rev 209827, xf86-video-intel/trunk/xf86-video-intel.install)
===================================================================
--- testing-x86_64/xf86-video-intel.install	                        (rev 0)
+++ testing-x86_64/xf86-video-intel.install	2014-04-05 13:04:19 UTC (rev 209828)
@@ -0,0 +1,22 @@
+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
+    fall back to UXA if you run into trouble or test experimental
+    Glamor acceleration. 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"  "sna"
+        #Option      "AccelMethod"  "uxa"
+        #Option      "AccelMethod"  "glamor"
+      EndSection
+MSG
+}
+




More information about the arch-commits mailing list