[arch-commits] Commit in mutter/trunk (4 files)
Jan Steffens
heftig at archlinux.org
Thu Oct 6 19:33:26 UTC 2016
Date: Thursday, October 6, 2016 @ 19:33:25
Author: heftig
Revision: 277852
3.22.0+3+ga9e386e-1
Added:
mutter/trunk/MetaMonitorManagerKms-stop-accounting-for-mode-fla.patch
mutter/trunk/MetaMonitorManagerKms-stop-taking-drmModeModeInfov.patch
mutter/trunk/meta-monitor-config-Look-at-an-outputs-modes-direc.patch
Modified:
mutter/trunk/PKGBUILD
----------------------------------------------------------+
MetaMonitorManagerKms-stop-accounting-for-mode-fla.patch | 34 ++++
MetaMonitorManagerKms-stop-taking-drmModeModeInfov.patch | 30 +++
PKGBUILD | 28 ++-
meta-monitor-config-Look-at-an-outputs-modes-direc.patch | 99 +++++++++++++
4 files changed, 183 insertions(+), 8 deletions(-)
Added: MetaMonitorManagerKms-stop-accounting-for-mode-fla.patch
===================================================================
--- MetaMonitorManagerKms-stop-accounting-for-mode-fla.patch (rev 0)
+++ MetaMonitorManagerKms-stop-accounting-for-mode-fla.patch 2016-10-06 19:33:25 UTC (rev 277852)
@@ -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
Added: MetaMonitorManagerKms-stop-taking-drmModeModeInfov.patch
===================================================================
--- MetaMonitorManagerKms-stop-taking-drmModeModeInfov.patch (rev 0)
+++ MetaMonitorManagerKms-stop-taking-drmModeModeInfov.patch 2016-10-06 19:33:25 UTC (rev 277852)
@@ -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
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2016-10-06 19:12:35 UTC (rev 277851)
+++ PKGBUILD 2016-10-06 19:33:25 UTC (rev 277852)
@@ -4,7 +4,7 @@
# Contributor: Michael Kanis <mkanis_at_gmx_dot_de>
pkgname=mutter
-pkgver=3.22.0+2+g0281570
+pkgver=3.22.0+3+ga9e386e
pkgrel=1
pkgdesc="A window manager for GNOME"
url="https://git.gnome.org/browse/mutter"
@@ -16,9 +16,15 @@
makedepends=(intltool gobject-introspection git gnome-common)
groups=(gnome)
options=(!emptydirs)
-_commit=028157081c0428bac1269078dd7f3360e3810824
-source=("git://git.gnome.org/mutter#commit=$_commit")
-sha256sums=('SKIP')
+_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
@@ -27,6 +33,12 @@
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
}
@@ -35,12 +47,12 @@
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
--libexecdir=/usr/lib/$pkgname --disable-static \
- --disable-schemas-compile --enable-compile-warnings=minimum
+ --disable-schemas-compile --enable-compile-warnings=minimum \
+ --enable-gtk-doc
#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
+ sed -e 's/ -shared / -Wl,-O1,--as-needed\0/g' \
+ -i {.,cogl,clutter}/libtool
make
}
Added: meta-monitor-config-Look-at-an-outputs-modes-direc.patch
===================================================================
--- meta-monitor-config-Look-at-an-outputs-modes-direc.patch (rev 0)
+++ meta-monitor-config-Look-at-an-outputs-modes-direc.patch 2016-10-06 19:33:25 UTC (rev 277852)
@@ -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