[arch-commits] Commit in mutter/repos (10 files)

Jan Steffens heftig at archlinux.org
Thu Oct 6 19:34:27 UTC 2016


    Date: Thursday, October 6, 2016 @ 19:34:26
  Author: heftig
Revision: 277853

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

Added:
  mutter/repos/testing-i686/MetaMonitorManagerKms-stop-accounting-for-mode-fla.patch
    (from rev 277852, mutter/trunk/MetaMonitorManagerKms-stop-accounting-for-mode-fla.patch)
  mutter/repos/testing-i686/MetaMonitorManagerKms-stop-taking-drmModeModeInfov.patch
    (from rev 277852, mutter/trunk/MetaMonitorManagerKms-stop-taking-drmModeModeInfov.patch)
  mutter/repos/testing-i686/PKGBUILD
    (from rev 277852, mutter/trunk/PKGBUILD)
  mutter/repos/testing-i686/meta-monitor-config-Look-at-an-outputs-modes-direc.patch
    (from rev 277852, mutter/trunk/meta-monitor-config-Look-at-an-outputs-modes-direc.patch)
  mutter/repos/testing-x86_64/MetaMonitorManagerKms-stop-accounting-for-mode-fla.patch
    (from rev 277852, mutter/trunk/MetaMonitorManagerKms-stop-accounting-for-mode-fla.patch)
  mutter/repos/testing-x86_64/MetaMonitorManagerKms-stop-taking-drmModeModeInfov.patch
    (from rev 277852, mutter/trunk/MetaMonitorManagerKms-stop-taking-drmModeModeInfov.patch)
  mutter/repos/testing-x86_64/PKGBUILD
    (from rev 277852, mutter/trunk/PKGBUILD)
  mutter/repos/testing-x86_64/meta-monitor-config-Look-at-an-outputs-modes-direc.patch
    (from rev 277852, mutter/trunk/meta-monitor-config-Look-at-an-outputs-modes-direc.patch)
Deleted:
  mutter/repos/testing-i686/PKGBUILD
  mutter/repos/testing-x86_64/PKGBUILD

-------------------------------------------------------------------------+
 /PKGBUILD                                                               |  126 ++++++++++
 testing-i686/MetaMonitorManagerKms-stop-accounting-for-mode-fla.patch   |   34 ++
 testing-i686/MetaMonitorManagerKms-stop-taking-drmModeModeInfov.patch   |   30 ++
 testing-i686/PKGBUILD                                                   |   51 ----
 testing-i686/meta-monitor-config-Look-at-an-outputs-modes-direc.patch   |   99 +++++++
 testing-x86_64/MetaMonitorManagerKms-stop-accounting-for-mode-fla.patch |   34 ++
 testing-x86_64/MetaMonitorManagerKms-stop-taking-drmModeModeInfov.patch |   30 ++
 testing-x86_64/PKGBUILD                                                 |   51 ----
 testing-x86_64/meta-monitor-config-Look-at-an-outputs-modes-direc.patch |   99 +++++++
 9 files changed, 452 insertions(+), 102 deletions(-)

Copied: mutter/repos/testing-i686/MetaMonitorManagerKms-stop-accounting-for-mode-fla.patch (from rev 277852, mutter/trunk/MetaMonitorManagerKms-stop-accounting-for-mode-fla.patch)
===================================================================
--- testing-i686/MetaMonitorManagerKms-stop-accounting-for-mode-fla.patch	                        (rev 0)
+++ testing-i686/MetaMonitorManagerKms-stop-accounting-for-mode-fla.patch	2016-10-06 19:34:26 UTC (rev 277853)
@@ -0,0 +1,34 @@
+From 9b1af7d4e4ebf7b5462edeb956b0651b6bf1178b Mon Sep 17 00:00:00 2001
+From: Rui Matos <tiagomatos at gmail.com>
+Date: Thu, 6 Oct 2016 15:57:01 +0200
+Subject: [PATCH] MetaMonitorManagerKms: stop accounting for mode flags in
+ refresh rates
+
+This isn't technically needed and, in fact, makes us default to
+interlaced modes in some cases which isn't desirable.
+
+Note that X doesn't account for these flags either for its mode
+refresh rates.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=772176
+---
+ src/backends/native/meta-monitor-manager-kms.c | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/src/backends/native/meta-monitor-manager-kms.c b/src/backends/native/meta-monitor-manager-kms.c
+index 9215c1a..9e3fad2 100644
+--- a/src/backends/native/meta-monitor-manager-kms.c
++++ b/src/backends/native/meta-monitor-manager-kms.c
+@@ -423,10 +423,6 @@ drm_mode_vrefresh (const drmModeModeInfo *mode)
+       refresh = (mode->clock * 1000000LL) / mode->htotal;
+       refresh += (mode->vtotal / 2);
+       refresh /= mode->vtotal;
+-      if (mode->flags & DRM_MODE_FLAG_INTERLACE)
+-        refresh *= 2;
+-      if (mode->flags & DRM_MODE_FLAG_DBLSCAN)
+-        refresh /= 2;
+       if (mode->vscan > 1)
+         refresh /= mode->vscan;
+       refresh /= 1000.0;
+-- 
+2.9.3
\ No newline at end of file

Copied: mutter/repos/testing-i686/MetaMonitorManagerKms-stop-taking-drmModeModeInfov.patch (from rev 277852, mutter/trunk/MetaMonitorManagerKms-stop-taking-drmModeModeInfov.patch)
===================================================================
--- testing-i686/MetaMonitorManagerKms-stop-taking-drmModeModeInfov.patch	                        (rev 0)
+++ testing-i686/MetaMonitorManagerKms-stop-taking-drmModeModeInfov.patch	2016-10-06 19:34:26 UTC (rev 277853)
@@ -0,0 +1,30 @@
+From 90883dd28faf5a0d0a72a59ef6a835616ce28c8c Mon Sep 17 00:00:00 2001
+From: Rui Matos <tiagomatos at gmail.com>
+Date: Thu, 6 Oct 2016 16:00:40 +0200
+Subject: [PATCH] MetaMonitorManagerKms: stop taking drmModeModeInfo.vrefresh
+ directly
+
+As in the previous commit, this value already has mode flags baked in
+and we can always get the value we need by computing it ourselves.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=772176
+---
+ src/backends/native/meta-monitor-manager-kms.c | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/src/backends/native/meta-monitor-manager-kms.c b/src/backends/native/meta-monitor-manager-kms.c
+index 9e3fad2..94d0b4f 100644
+--- a/src/backends/native/meta-monitor-manager-kms.c
++++ b/src/backends/native/meta-monitor-manager-kms.c
+@@ -414,9 +414,6 @@ drm_mode_vrefresh (const drmModeModeInfo *mode)
+ {
+   float refresh = 0.0;
+ 
+-  if (mode->vrefresh > 0.0)
+-    return mode->vrefresh;
+-
+   if (mode->htotal > 0 && mode->vtotal > 0)
+     {
+       /* Calculate refresh rate in milliHz first for extra precision. */
+-- 
+2.9.3
\ No newline at end of file

Deleted: testing-i686/PKGBUILD
===================================================================
--- testing-i686/PKGBUILD	2016-10-06 19:33:25 UTC (rev 277852)
+++ testing-i686/PKGBUILD	2016-10-06 19:34:26 UTC (rev 277853)
@@ -1,51 +0,0 @@
-# $Id$
-# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens at gmail.com>
-# Maintainer: Ionut Biru <ibiru at archlinux.org>
-# Contributor: Michael Kanis <mkanis_at_gmx_dot_de>
-
-pkgname=mutter
-pkgver=3.22.0+2+g0281570
-pkgrel=1
-pkgdesc="A window manager for GNOME"
-url="https://git.gnome.org/browse/mutter"
-arch=(i686 x86_64)
-license=(GPL)
-depends=(dconf gobject-introspection-runtime gsettings-desktop-schemas
-         libcanberra startup-notification zenity libsm gnome-desktop upower
-         libxkbcommon-x11 gnome-settings-daemon libgudev libinput)
-makedepends=(intltool gobject-introspection git gnome-common)
-groups=(gnome)
-options=(!emptydirs)
-_commit=028157081c0428bac1269078dd7f3360e3810824
-source=("git://git.gnome.org/mutter#commit=$_commit")
-sha256sums=('SKIP')
-
-pkgver() {
-  cd $pkgname
-  git describe --tags | sed 's/-/+/g'
-}
-
-prepare() {
-  cd $pkgname
-  NOCONFIGURE=1 ./autogen.sh
-}
-
-build() {
-  cd $pkgname
-
-  ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
-      --libexecdir=/usr/lib/$pkgname --disable-static \
-      --disable-schemas-compile --enable-compile-warnings=minimum
-
-  #https://bugzilla.gnome.org/show_bug.cgi?id=655517
-  sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
-  sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' cogl/libtool
-  sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' clutter/libtool
-
-  make
-}
-
-package() {
-  cd $pkgname
-  make DESTDIR="$pkgdir" install
-}

Copied: mutter/repos/testing-i686/PKGBUILD (from rev 277852, mutter/trunk/PKGBUILD)
===================================================================
--- testing-i686/PKGBUILD	                        (rev 0)
+++ testing-i686/PKGBUILD	2016-10-06 19:34:26 UTC (rev 277853)
@@ -0,0 +1,63 @@
+# $Id$
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens at gmail.com>
+# Maintainer: Ionut Biru <ibiru at archlinux.org>
+# Contributor: Michael Kanis <mkanis_at_gmx_dot_de>
+
+pkgname=mutter
+pkgver=3.22.0+3+ga9e386e
+pkgrel=1
+pkgdesc="A window manager for GNOME"
+url="https://git.gnome.org/browse/mutter"
+arch=(i686 x86_64)
+license=(GPL)
+depends=(dconf gobject-introspection-runtime gsettings-desktop-schemas
+         libcanberra startup-notification zenity libsm gnome-desktop upower
+         libxkbcommon-x11 gnome-settings-daemon libgudev libinput)
+makedepends=(intltool gobject-introspection git gnome-common)
+groups=(gnome)
+options=(!emptydirs)
+_commit=a9e386e1af76b3110780291462a329ca7ef9ffad  # master
+source=("git://git.gnome.org/mutter#commit=$_commit"
+        MetaMonitorManagerKms-stop-accounting-for-mode-fla.patch
+        MetaMonitorManagerKms-stop-taking-drmModeModeInfov.patch
+        meta-monitor-config-Look-at-an-outputs-modes-direc.patch)
+sha256sums=('SKIP'
+            'fcae247f030ca2b79b42601499493f18765fb37c77e2be9e1dbb1e0865f064f3'
+            '543d51bc471fae78e402f33d7606e8806b95874ed40ba910fea5b807f47ef30a'
+            '4bbfa7f5f397c1c462ea3ef0018dc5c93c7a2afc28a3253eed6ade17ebde72fc')
+
+pkgver() {
+  cd $pkgname
+  git describe --tags | sed 's/-/+/g'
+}
+
+prepare() {
+  cd $pkgname
+
+  # https://bugzilla.gnome.org/show_bug.cgi?id=772176
+  patch -Np1 -i ../MetaMonitorManagerKms-stop-accounting-for-mode-fla.patch
+  patch -Np1 -i ../MetaMonitorManagerKms-stop-taking-drmModeModeInfov.patch
+  patch -Np1 -i ../meta-monitor-config-Look-at-an-outputs-modes-direc.patch
+
+  NOCONFIGURE=1 ./autogen.sh
+}
+
+build() {
+  cd $pkgname
+
+  ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+      --libexecdir=/usr/lib/$pkgname --disable-static \
+      --disable-schemas-compile --enable-compile-warnings=minimum \
+      --enable-gtk-doc
+
+  #https://bugzilla.gnome.org/show_bug.cgi?id=655517
+  sed -e 's/ -shared / -Wl,-O1,--as-needed\0/g' \
+      -i {.,cogl,clutter}/libtool
+
+  make
+}
+
+package() {
+  cd $pkgname
+  make DESTDIR="$pkgdir" install
+}

Copied: mutter/repos/testing-i686/meta-monitor-config-Look-at-an-outputs-modes-direc.patch (from rev 277852, mutter/trunk/meta-monitor-config-Look-at-an-outputs-modes-direc.patch)
===================================================================
--- testing-i686/meta-monitor-config-Look-at-an-outputs-modes-direc.patch	                        (rev 0)
+++ testing-i686/meta-monitor-config-Look-at-an-outputs-modes-direc.patch	2016-10-06 19:34:26 UTC (rev 277853)
@@ -0,0 +1,99 @@
+From 86a0a8c64d468bf92c646db0fb6fa89bb48f1878 Mon Sep 17 00:00:00 2001
+From: Rui Matos <tiagomatos at gmail.com>
+Date: Thu, 6 Oct 2016 16:04:49 +0200
+Subject: [PATCH] meta-monitor-config: Look at an output's modes directly when
+ assigning
+
+Going through the global mode pool and then checking if the mode is
+available for a given output is pointless work since we can look at
+the output's available modes directly.
+
+This implicitly changes how we choose the default mode since, instead
+of relying on the sort order of the global modes array, we now rely on
+the sort order of the output modes array. Still not ideal, but at
+least it makes more sense since the global array is essentially
+unsorted.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=772176
+---
+ src/backends/meta-monitor-config.c | 27 +++++----------------------
+ 1 file changed, 5 insertions(+), 22 deletions(-)
+
+diff --git a/src/backends/meta-monitor-config.c b/src/backends/meta-monitor-config.c
+index fde615d..f691e54 100644
+--- a/src/backends/meta-monitor-config.c
++++ b/src/backends/meta-monitor-config.c
+@@ -1802,19 +1802,6 @@ crtc_can_drive_output (MetaCRTC   *crtc,
+ }
+ 
+ static gboolean
+-output_supports_mode (MetaOutput      *output,
+-                      MetaMonitorMode *mode)
+-{
+-  unsigned int i;
+-
+-  for (i = 0; i < output->n_modes; i++)
+-    if (output->modes[i] == mode)
+-      return TRUE;
+-
+-  return FALSE;
+-}
+-
+-static gboolean
+ crtc_assignment_assign (CrtcAssignment       *assign,
+ 			MetaCRTC             *crtc,
+ 			MetaMonitorMode      *mode,
+@@ -1828,9 +1815,6 @@ crtc_assignment_assign (CrtcAssignment       *assign,
+   if (!crtc_can_drive_output (crtc, output))
+     return FALSE;
+ 
+-  if (!output_supports_mode (output, mode))
+-    return FALSE;
+-
+   if ((crtc->all_transforms & (1 << transform)) == 0)
+     return FALSE;
+ 
+@@ -1917,10 +1901,9 @@ static gboolean
+ real_assign_crtcs (CrtcAssignment     *assignment,
+                    unsigned int        output_num)
+ {
+-  MetaMonitorMode *modes;
+   MetaCRTC *crtcs;
+   MetaOutput *outputs;
+-  unsigned int n_crtcs, n_modes, n_outputs;
++  unsigned int n_crtcs, n_outputs;
+   MetaOutputKey *output_key;
+   MetaOutputConfig *output_config;
+   unsigned int i;
+@@ -1936,7 +1919,7 @@ real_assign_crtcs (CrtcAssignment     *assignment,
+     return real_assign_crtcs (assignment, output_num + 1);
+ 
+   meta_monitor_manager_get_resources (assignment->manager,
+-                                      &modes, &n_modes,
++                                      NULL, NULL,
+                                       &crtcs, &n_crtcs,
+                                       &outputs, &n_outputs);
+ 
+@@ -1953,9 +1936,9 @@ real_assign_crtcs (CrtcAssignment     *assignment,
+           MetaOutput *output = find_output_by_key (outputs, n_outputs, output_key);
+           unsigned int j;
+ 
+-          for (j = 0; j < n_modes; j++)
++          for (j = 0; j < output->n_modes; j++)
+ 	    {
+-              MetaMonitorMode *mode = &modes[j];
++              MetaMonitorMode *mode = output->modes[j];
+               int width, height;
+ 
+               if (meta_monitor_transform_is_rotated (output_config->transform))
+@@ -1980,7 +1963,7 @@ real_assign_crtcs (CrtcAssignment     *assignment,
+                                 output_config->transform,
+                                 pass);
+ 
+-                  if (crtc_assignment_assign (assignment, crtc, &modes[j],
++                  if (crtc_assignment_assign (assignment, crtc, mode,
+                                               output_config->rect.x, output_config->rect.y,
+                                               output_config->transform,
+                                               output))
+-- 
+2.9.3
\ No newline at end of file

Copied: mutter/repos/testing-x86_64/MetaMonitorManagerKms-stop-accounting-for-mode-fla.patch (from rev 277852, mutter/trunk/MetaMonitorManagerKms-stop-accounting-for-mode-fla.patch)
===================================================================
--- testing-x86_64/MetaMonitorManagerKms-stop-accounting-for-mode-fla.patch	                        (rev 0)
+++ testing-x86_64/MetaMonitorManagerKms-stop-accounting-for-mode-fla.patch	2016-10-06 19:34:26 UTC (rev 277853)
@@ -0,0 +1,34 @@
+From 9b1af7d4e4ebf7b5462edeb956b0651b6bf1178b Mon Sep 17 00:00:00 2001
+From: Rui Matos <tiagomatos at gmail.com>
+Date: Thu, 6 Oct 2016 15:57:01 +0200
+Subject: [PATCH] MetaMonitorManagerKms: stop accounting for mode flags in
+ refresh rates
+
+This isn't technically needed and, in fact, makes us default to
+interlaced modes in some cases which isn't desirable.
+
+Note that X doesn't account for these flags either for its mode
+refresh rates.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=772176
+---
+ src/backends/native/meta-monitor-manager-kms.c | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/src/backends/native/meta-monitor-manager-kms.c b/src/backends/native/meta-monitor-manager-kms.c
+index 9215c1a..9e3fad2 100644
+--- a/src/backends/native/meta-monitor-manager-kms.c
++++ b/src/backends/native/meta-monitor-manager-kms.c
+@@ -423,10 +423,6 @@ drm_mode_vrefresh (const drmModeModeInfo *mode)
+       refresh = (mode->clock * 1000000LL) / mode->htotal;
+       refresh += (mode->vtotal / 2);
+       refresh /= mode->vtotal;
+-      if (mode->flags & DRM_MODE_FLAG_INTERLACE)
+-        refresh *= 2;
+-      if (mode->flags & DRM_MODE_FLAG_DBLSCAN)
+-        refresh /= 2;
+       if (mode->vscan > 1)
+         refresh /= mode->vscan;
+       refresh /= 1000.0;
+-- 
+2.9.3
\ No newline at end of file

Copied: mutter/repos/testing-x86_64/MetaMonitorManagerKms-stop-taking-drmModeModeInfov.patch (from rev 277852, mutter/trunk/MetaMonitorManagerKms-stop-taking-drmModeModeInfov.patch)
===================================================================
--- testing-x86_64/MetaMonitorManagerKms-stop-taking-drmModeModeInfov.patch	                        (rev 0)
+++ testing-x86_64/MetaMonitorManagerKms-stop-taking-drmModeModeInfov.patch	2016-10-06 19:34:26 UTC (rev 277853)
@@ -0,0 +1,30 @@
+From 90883dd28faf5a0d0a72a59ef6a835616ce28c8c Mon Sep 17 00:00:00 2001
+From: Rui Matos <tiagomatos at gmail.com>
+Date: Thu, 6 Oct 2016 16:00:40 +0200
+Subject: [PATCH] MetaMonitorManagerKms: stop taking drmModeModeInfo.vrefresh
+ directly
+
+As in the previous commit, this value already has mode flags baked in
+and we can always get the value we need by computing it ourselves.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=772176
+---
+ src/backends/native/meta-monitor-manager-kms.c | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/src/backends/native/meta-monitor-manager-kms.c b/src/backends/native/meta-monitor-manager-kms.c
+index 9e3fad2..94d0b4f 100644
+--- a/src/backends/native/meta-monitor-manager-kms.c
++++ b/src/backends/native/meta-monitor-manager-kms.c
+@@ -414,9 +414,6 @@ drm_mode_vrefresh (const drmModeModeInfo *mode)
+ {
+   float refresh = 0.0;
+ 
+-  if (mode->vrefresh > 0.0)
+-    return mode->vrefresh;
+-
+   if (mode->htotal > 0 && mode->vtotal > 0)
+     {
+       /* Calculate refresh rate in milliHz first for extra precision. */
+-- 
+2.9.3
\ No newline at end of file

Deleted: testing-x86_64/PKGBUILD
===================================================================
--- testing-x86_64/PKGBUILD	2016-10-06 19:33:25 UTC (rev 277852)
+++ testing-x86_64/PKGBUILD	2016-10-06 19:34:26 UTC (rev 277853)
@@ -1,51 +0,0 @@
-# $Id$
-# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens at gmail.com>
-# Maintainer: Ionut Biru <ibiru at archlinux.org>
-# Contributor: Michael Kanis <mkanis_at_gmx_dot_de>
-
-pkgname=mutter
-pkgver=3.22.0+2+g0281570
-pkgrel=1
-pkgdesc="A window manager for GNOME"
-url="https://git.gnome.org/browse/mutter"
-arch=(i686 x86_64)
-license=(GPL)
-depends=(dconf gobject-introspection-runtime gsettings-desktop-schemas
-         libcanberra startup-notification zenity libsm gnome-desktop upower
-         libxkbcommon-x11 gnome-settings-daemon libgudev libinput)
-makedepends=(intltool gobject-introspection git gnome-common)
-groups=(gnome)
-options=(!emptydirs)
-_commit=028157081c0428bac1269078dd7f3360e3810824
-source=("git://git.gnome.org/mutter#commit=$_commit")
-sha256sums=('SKIP')
-
-pkgver() {
-  cd $pkgname
-  git describe --tags | sed 's/-/+/g'
-}
-
-prepare() {
-  cd $pkgname
-  NOCONFIGURE=1 ./autogen.sh
-}
-
-build() {
-  cd $pkgname
-
-  ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
-      --libexecdir=/usr/lib/$pkgname --disable-static \
-      --disable-schemas-compile --enable-compile-warnings=minimum
-
-  #https://bugzilla.gnome.org/show_bug.cgi?id=655517
-  sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
-  sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' cogl/libtool
-  sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' clutter/libtool
-
-  make
-}
-
-package() {
-  cd $pkgname
-  make DESTDIR="$pkgdir" install
-}

Copied: mutter/repos/testing-x86_64/PKGBUILD (from rev 277852, mutter/trunk/PKGBUILD)
===================================================================
--- testing-x86_64/PKGBUILD	                        (rev 0)
+++ testing-x86_64/PKGBUILD	2016-10-06 19:34:26 UTC (rev 277853)
@@ -0,0 +1,63 @@
+# $Id$
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens at gmail.com>
+# Maintainer: Ionut Biru <ibiru at archlinux.org>
+# Contributor: Michael Kanis <mkanis_at_gmx_dot_de>
+
+pkgname=mutter
+pkgver=3.22.0+3+ga9e386e
+pkgrel=1
+pkgdesc="A window manager for GNOME"
+url="https://git.gnome.org/browse/mutter"
+arch=(i686 x86_64)
+license=(GPL)
+depends=(dconf gobject-introspection-runtime gsettings-desktop-schemas
+         libcanberra startup-notification zenity libsm gnome-desktop upower
+         libxkbcommon-x11 gnome-settings-daemon libgudev libinput)
+makedepends=(intltool gobject-introspection git gnome-common)
+groups=(gnome)
+options=(!emptydirs)
+_commit=a9e386e1af76b3110780291462a329ca7ef9ffad  # master
+source=("git://git.gnome.org/mutter#commit=$_commit"
+        MetaMonitorManagerKms-stop-accounting-for-mode-fla.patch
+        MetaMonitorManagerKms-stop-taking-drmModeModeInfov.patch
+        meta-monitor-config-Look-at-an-outputs-modes-direc.patch)
+sha256sums=('SKIP'
+            'fcae247f030ca2b79b42601499493f18765fb37c77e2be9e1dbb1e0865f064f3'
+            '543d51bc471fae78e402f33d7606e8806b95874ed40ba910fea5b807f47ef30a'
+            '4bbfa7f5f397c1c462ea3ef0018dc5c93c7a2afc28a3253eed6ade17ebde72fc')
+
+pkgver() {
+  cd $pkgname
+  git describe --tags | sed 's/-/+/g'
+}
+
+prepare() {
+  cd $pkgname
+
+  # https://bugzilla.gnome.org/show_bug.cgi?id=772176
+  patch -Np1 -i ../MetaMonitorManagerKms-stop-accounting-for-mode-fla.patch
+  patch -Np1 -i ../MetaMonitorManagerKms-stop-taking-drmModeModeInfov.patch
+  patch -Np1 -i ../meta-monitor-config-Look-at-an-outputs-modes-direc.patch
+
+  NOCONFIGURE=1 ./autogen.sh
+}
+
+build() {
+  cd $pkgname
+
+  ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+      --libexecdir=/usr/lib/$pkgname --disable-static \
+      --disable-schemas-compile --enable-compile-warnings=minimum \
+      --enable-gtk-doc
+
+  #https://bugzilla.gnome.org/show_bug.cgi?id=655517
+  sed -e 's/ -shared / -Wl,-O1,--as-needed\0/g' \
+      -i {.,cogl,clutter}/libtool
+
+  make
+}
+
+package() {
+  cd $pkgname
+  make DESTDIR="$pkgdir" install
+}

Copied: mutter/repos/testing-x86_64/meta-monitor-config-Look-at-an-outputs-modes-direc.patch (from rev 277852, mutter/trunk/meta-monitor-config-Look-at-an-outputs-modes-direc.patch)
===================================================================
--- testing-x86_64/meta-monitor-config-Look-at-an-outputs-modes-direc.patch	                        (rev 0)
+++ testing-x86_64/meta-monitor-config-Look-at-an-outputs-modes-direc.patch	2016-10-06 19:34:26 UTC (rev 277853)
@@ -0,0 +1,99 @@
+From 86a0a8c64d468bf92c646db0fb6fa89bb48f1878 Mon Sep 17 00:00:00 2001
+From: Rui Matos <tiagomatos at gmail.com>
+Date: Thu, 6 Oct 2016 16:04:49 +0200
+Subject: [PATCH] meta-monitor-config: Look at an output's modes directly when
+ assigning
+
+Going through the global mode pool and then checking if the mode is
+available for a given output is pointless work since we can look at
+the output's available modes directly.
+
+This implicitly changes how we choose the default mode since, instead
+of relying on the sort order of the global modes array, we now rely on
+the sort order of the output modes array. Still not ideal, but at
+least it makes more sense since the global array is essentially
+unsorted.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=772176
+---
+ src/backends/meta-monitor-config.c | 27 +++++----------------------
+ 1 file changed, 5 insertions(+), 22 deletions(-)
+
+diff --git a/src/backends/meta-monitor-config.c b/src/backends/meta-monitor-config.c
+index fde615d..f691e54 100644
+--- a/src/backends/meta-monitor-config.c
++++ b/src/backends/meta-monitor-config.c
+@@ -1802,19 +1802,6 @@ crtc_can_drive_output (MetaCRTC   *crtc,
+ }
+ 
+ static gboolean
+-output_supports_mode (MetaOutput      *output,
+-                      MetaMonitorMode *mode)
+-{
+-  unsigned int i;
+-
+-  for (i = 0; i < output->n_modes; i++)
+-    if (output->modes[i] == mode)
+-      return TRUE;
+-
+-  return FALSE;
+-}
+-
+-static gboolean
+ crtc_assignment_assign (CrtcAssignment       *assign,
+ 			MetaCRTC             *crtc,
+ 			MetaMonitorMode      *mode,
+@@ -1828,9 +1815,6 @@ crtc_assignment_assign (CrtcAssignment       *assign,
+   if (!crtc_can_drive_output (crtc, output))
+     return FALSE;
+ 
+-  if (!output_supports_mode (output, mode))
+-    return FALSE;
+-
+   if ((crtc->all_transforms & (1 << transform)) == 0)
+     return FALSE;
+ 
+@@ -1917,10 +1901,9 @@ static gboolean
+ real_assign_crtcs (CrtcAssignment     *assignment,
+                    unsigned int        output_num)
+ {
+-  MetaMonitorMode *modes;
+   MetaCRTC *crtcs;
+   MetaOutput *outputs;
+-  unsigned int n_crtcs, n_modes, n_outputs;
++  unsigned int n_crtcs, n_outputs;
+   MetaOutputKey *output_key;
+   MetaOutputConfig *output_config;
+   unsigned int i;
+@@ -1936,7 +1919,7 @@ real_assign_crtcs (CrtcAssignment     *assignment,
+     return real_assign_crtcs (assignment, output_num + 1);
+ 
+   meta_monitor_manager_get_resources (assignment->manager,
+-                                      &modes, &n_modes,
++                                      NULL, NULL,
+                                       &crtcs, &n_crtcs,
+                                       &outputs, &n_outputs);
+ 
+@@ -1953,9 +1936,9 @@ real_assign_crtcs (CrtcAssignment     *assignment,
+           MetaOutput *output = find_output_by_key (outputs, n_outputs, output_key);
+           unsigned int j;
+ 
+-          for (j = 0; j < n_modes; j++)
++          for (j = 0; j < output->n_modes; j++)
+ 	    {
+-              MetaMonitorMode *mode = &modes[j];
++              MetaMonitorMode *mode = output->modes[j];
+               int width, height;
+ 
+               if (meta_monitor_transform_is_rotated (output_config->transform))
+@@ -1980,7 +1963,7 @@ real_assign_crtcs (CrtcAssignment     *assignment,
+                                 output_config->transform,
+                                 pass);
+ 
+-                  if (crtc_assignment_assign (assignment, crtc, &modes[j],
++                  if (crtc_assignment_assign (assignment, crtc, mode,
+                                               output_config->rect.x, output_config->rect.y,
+                                               output_config->transform,
+                                               output))
+-- 
+2.9.3
\ No newline at end of file



More information about the arch-commits mailing list