[arch-commits] Commit in mutter/repos/extra-x86_64 (4 files)
Jan Steffens
heftig at archlinux.org
Sat Mar 16 13:35:09 UTC 2019
Date: Saturday, March 16, 2019 @ 13:35:08
Author: heftig
Revision: 348471
archrelease: copy trunk to extra-x86_64
Added:
mutter/repos/extra-x86_64/216.patch
(from rev 348470, mutter/trunk/216.patch)
mutter/repos/extra-x86_64/PKGBUILD
(from rev 348470, mutter/trunk/PKGBUILD)
Deleted:
mutter/repos/extra-x86_64/216.patch
mutter/repos/extra-x86_64/PKGBUILD
-----------+
216.patch | 256 ++++++++++++++++++++++++++++++------------------------------
PKGBUILD | 108 ++++++++++++-------------
2 files changed, 182 insertions(+), 182 deletions(-)
Deleted: 216.patch
===================================================================
--- 216.patch 2019-03-16 13:34:49 UTC (rev 348470)
+++ 216.patch 2019-03-16 13:35:08 UTC (rev 348471)
@@ -1,128 +0,0 @@
-From 6d8d73beeef3a618c553e89b0b3e532ec3654a30 Mon Sep 17 00:00:00 2001
-From: Daniel van Vugt <daniel.van.vugt at canonical.com>
-Date: Mon, 23 Jul 2018 16:28:56 +0800
-Subject: [PATCH] cogl-winsys-glx: Fix frame notification race/leak
-
-If a second `set_{sync,complete}_pending` was queued before the idle
-handler had flushed the first then one of them would be forgotten.
-It would stay queued forever and never emitted as a notification.
-
-This could happen repeatedly causing a slow leak. But worse still,
-`clutter-stage-cogl` would then have `pending_swaps` permanently stuck
-above zero preventing the presentation timing logic from being used.
-
-The problem is that a boolean can only count to one, but in some cases
-(triple buffering, whether intentional or accidental #334) we need it to
-count to two. So just change booleans to integers and count properly.
-
-https://gitlab.gnome.org/GNOME/mutter/merge_requests/216
----
- cogl/cogl/winsys/cogl-winsys-glx.c | 58 +++++++++++++++---------------
- 1 file changed, 29 insertions(+), 29 deletions(-)
-
-diff --git a/cogl/cogl/winsys/cogl-winsys-glx.c b/cogl/cogl/winsys/cogl-winsys-glx.c
-index 2623d02c6..235cfe81f 100644
---- a/cogl/cogl/winsys/cogl-winsys-glx.c
-+++ b/cogl/cogl/winsys/cogl-winsys-glx.c
-@@ -99,9 +99,9 @@ typedef struct _CoglOnscreenGLX
- CoglOnscreenXlib _parent;
- GLXDrawable glxwin;
- uint32_t last_swap_vsync_counter;
-- gboolean pending_sync_notify;
-- gboolean pending_complete_notify;
-- gboolean pending_resize_notify;
-+ uint32_t pending_sync_notify;
-+ uint32_t pending_complete_notify;
-+ uint32_t pending_resize_notify;
-
- GThread *swap_wait_thread;
- GQueue *swap_wait_queue;
-@@ -347,35 +347,35 @@ flush_pending_notifications_cb (void *data,
- {
- CoglOnscreen *onscreen = COGL_ONSCREEN (framebuffer);
- CoglOnscreenGLX *glx_onscreen = onscreen->winsys;
-- gboolean pending_sync_notify = glx_onscreen->pending_sync_notify;
-- gboolean pending_complete_notify = glx_onscreen->pending_complete_notify;
-
-- /* If swap_region is called then notifying the sync event could
-- * potentially immediately queue a subsequent pending notify so
-- * we need to clear the flag before invoking the callback */
-- glx_onscreen->pending_sync_notify = FALSE;
-- glx_onscreen->pending_complete_notify = FALSE;
--
-- if (pending_sync_notify)
-+ while (glx_onscreen->pending_sync_notify > 0 ||
-+ glx_onscreen->pending_complete_notify > 0 ||
-+ glx_onscreen->pending_resize_notify > 0)
- {
-- CoglFrameInfo *info = g_queue_peek_head (&onscreen->pending_frame_infos);
--
-- _cogl_onscreen_notify_frame_sync (onscreen, info);
-- }
-+ if (glx_onscreen->pending_sync_notify > 0)
-+ {
-+ CoglFrameInfo *info =
-+ g_queue_peek_head (&onscreen->pending_frame_infos);
-
-- if (pending_complete_notify)
-- {
-- CoglFrameInfo *info = g_queue_pop_head (&onscreen->pending_frame_infos);
-+ _cogl_onscreen_notify_frame_sync (onscreen, info);
-+ glx_onscreen->pending_sync_notify--;
-+ }
-
-- _cogl_onscreen_notify_complete (onscreen, info);
-+ if (glx_onscreen->pending_complete_notify > 0)
-+ {
-+ CoglFrameInfo *info =
-+ g_queue_pop_head (&onscreen->pending_frame_infos);
-
-- cogl_object_unref (info);
-- }
-+ _cogl_onscreen_notify_complete (onscreen, info);
-+ cogl_object_unref (info);
-+ glx_onscreen->pending_complete_notify--;
-+ }
-
-- if (glx_onscreen->pending_resize_notify)
-- {
-- _cogl_onscreen_notify_resize (onscreen);
-- glx_onscreen->pending_resize_notify = FALSE;
-+ if (glx_onscreen->pending_resize_notify > 0)
-+ {
-+ _cogl_onscreen_notify_resize (onscreen);
-+ glx_onscreen->pending_resize_notify--;
-+ }
- }
- }
- }
-@@ -417,7 +417,7 @@ set_sync_pending (CoglOnscreen *onscreen)
- NULL);
- }
-
-- glx_onscreen->pending_sync_notify = TRUE;
-+ glx_onscreen->pending_sync_notify++;
- }
-
- static void
-@@ -440,7 +440,7 @@ set_complete_pending (CoglOnscreen *onscreen)
- NULL);
- }
-
-- glx_onscreen->pending_complete_notify = TRUE;
-+ glx_onscreen->pending_complete_notify++;
- }
-
- static void
-@@ -533,7 +533,7 @@ notify_resize (CoglContext *context,
- NULL);
- }
-
-- glx_onscreen->pending_resize_notify = TRUE;
-+ glx_onscreen->pending_resize_notify++;
-
- if (!xlib_onscreen->is_foreign_xwin)
- {
---
-2.18.1
-
Copied: mutter/repos/extra-x86_64/216.patch (from rev 348470, mutter/trunk/216.patch)
===================================================================
--- 216.patch (rev 0)
+++ 216.patch 2019-03-16 13:35:08 UTC (rev 348471)
@@ -0,0 +1,128 @@
+From 6d8d73beeef3a618c553e89b0b3e532ec3654a30 Mon Sep 17 00:00:00 2001
+From: Daniel van Vugt <daniel.van.vugt at canonical.com>
+Date: Mon, 23 Jul 2018 16:28:56 +0800
+Subject: [PATCH] cogl-winsys-glx: Fix frame notification race/leak
+
+If a second `set_{sync,complete}_pending` was queued before the idle
+handler had flushed the first then one of them would be forgotten.
+It would stay queued forever and never emitted as a notification.
+
+This could happen repeatedly causing a slow leak. But worse still,
+`clutter-stage-cogl` would then have `pending_swaps` permanently stuck
+above zero preventing the presentation timing logic from being used.
+
+The problem is that a boolean can only count to one, but in some cases
+(triple buffering, whether intentional or accidental #334) we need it to
+count to two. So just change booleans to integers and count properly.
+
+https://gitlab.gnome.org/GNOME/mutter/merge_requests/216
+---
+ cogl/cogl/winsys/cogl-winsys-glx.c | 58 +++++++++++++++---------------
+ 1 file changed, 29 insertions(+), 29 deletions(-)
+
+diff --git a/cogl/cogl/winsys/cogl-winsys-glx.c b/cogl/cogl/winsys/cogl-winsys-glx.c
+index 2623d02c6..235cfe81f 100644
+--- a/cogl/cogl/winsys/cogl-winsys-glx.c
++++ b/cogl/cogl/winsys/cogl-winsys-glx.c
+@@ -99,9 +99,9 @@ typedef struct _CoglOnscreenGLX
+ CoglOnscreenXlib _parent;
+ GLXDrawable glxwin;
+ uint32_t last_swap_vsync_counter;
+- gboolean pending_sync_notify;
+- gboolean pending_complete_notify;
+- gboolean pending_resize_notify;
++ uint32_t pending_sync_notify;
++ uint32_t pending_complete_notify;
++ uint32_t pending_resize_notify;
+
+ GThread *swap_wait_thread;
+ GQueue *swap_wait_queue;
+@@ -347,35 +347,35 @@ flush_pending_notifications_cb (void *data,
+ {
+ CoglOnscreen *onscreen = COGL_ONSCREEN (framebuffer);
+ CoglOnscreenGLX *glx_onscreen = onscreen->winsys;
+- gboolean pending_sync_notify = glx_onscreen->pending_sync_notify;
+- gboolean pending_complete_notify = glx_onscreen->pending_complete_notify;
+
+- /* If swap_region is called then notifying the sync event could
+- * potentially immediately queue a subsequent pending notify so
+- * we need to clear the flag before invoking the callback */
+- glx_onscreen->pending_sync_notify = FALSE;
+- glx_onscreen->pending_complete_notify = FALSE;
+-
+- if (pending_sync_notify)
++ while (glx_onscreen->pending_sync_notify > 0 ||
++ glx_onscreen->pending_complete_notify > 0 ||
++ glx_onscreen->pending_resize_notify > 0)
+ {
+- CoglFrameInfo *info = g_queue_peek_head (&onscreen->pending_frame_infos);
+-
+- _cogl_onscreen_notify_frame_sync (onscreen, info);
+- }
++ if (glx_onscreen->pending_sync_notify > 0)
++ {
++ CoglFrameInfo *info =
++ g_queue_peek_head (&onscreen->pending_frame_infos);
+
+- if (pending_complete_notify)
+- {
+- CoglFrameInfo *info = g_queue_pop_head (&onscreen->pending_frame_infos);
++ _cogl_onscreen_notify_frame_sync (onscreen, info);
++ glx_onscreen->pending_sync_notify--;
++ }
+
+- _cogl_onscreen_notify_complete (onscreen, info);
++ if (glx_onscreen->pending_complete_notify > 0)
++ {
++ CoglFrameInfo *info =
++ g_queue_pop_head (&onscreen->pending_frame_infos);
+
+- cogl_object_unref (info);
+- }
++ _cogl_onscreen_notify_complete (onscreen, info);
++ cogl_object_unref (info);
++ glx_onscreen->pending_complete_notify--;
++ }
+
+- if (glx_onscreen->pending_resize_notify)
+- {
+- _cogl_onscreen_notify_resize (onscreen);
+- glx_onscreen->pending_resize_notify = FALSE;
++ if (glx_onscreen->pending_resize_notify > 0)
++ {
++ _cogl_onscreen_notify_resize (onscreen);
++ glx_onscreen->pending_resize_notify--;
++ }
+ }
+ }
+ }
+@@ -417,7 +417,7 @@ set_sync_pending (CoglOnscreen *onscreen)
+ NULL);
+ }
+
+- glx_onscreen->pending_sync_notify = TRUE;
++ glx_onscreen->pending_sync_notify++;
+ }
+
+ static void
+@@ -440,7 +440,7 @@ set_complete_pending (CoglOnscreen *onscreen)
+ NULL);
+ }
+
+- glx_onscreen->pending_complete_notify = TRUE;
++ glx_onscreen->pending_complete_notify++;
+ }
+
+ static void
+@@ -533,7 +533,7 @@ notify_resize (CoglContext *context,
+ NULL);
+ }
+
+- glx_onscreen->pending_resize_notify = TRUE;
++ glx_onscreen->pending_resize_notify++;
+
+ if (!xlib_onscreen->is_foreign_xwin)
+ {
+--
+2.18.1
+
Deleted: PKGBUILD
===================================================================
--- PKGBUILD 2019-03-16 13:34:49 UTC (rev 348470)
+++ PKGBUILD 2019-03-16 13:35:08 UTC (rev 348471)
@@ -1,54 +0,0 @@
-# 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.32.0
-pkgrel=1
-pkgdesc="A window manager for GNOME"
-url="https://gitlab.gnome.org/GNOME/mutter"
-arch=(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 pipewire xorg-server-xwayland)
-makedepends=(gobject-introspection git egl-wayland meson xorg-server)
-checkdepends=(xorg-server-xvfb)
-groups=(gnome)
-_commit=efb1ee97308653a28ed4448b0c405e6faf2c4f40 # tags/3.32.0^0
-source=("git+https://gitlab.gnome.org/GNOME/mutter.git#commit=$_commit"
- 216.patch)
-sha256sums=('SKIP'
- 'ed4f3cf738a3cffdf8a6e1a352bf24d74078c3b26fb9262c5746e0d95b9df756')
-
-pkgver() {
- cd $pkgname
- git describe --tags | sed 's/-/+/g'
-}
-
-prepare() {
- cd $pkgname
-
- # https://gitlab.gnome.org/GNOME/mutter/merge_requests/216
- git apply -3 ../216.patch
-}
-
-build() {
- arch-meson $pkgname build \
- -D egl_device=true \
- -D wayland_eglstream=true \
- -D installed_tests=false
- ninja -C build
-}
-
-check() (
- mkdir -p -m 700 "${XDG_RUNTIME_DIR:=$PWD/runtime-dir}"
- glib-compile-schemas "${GSETTINGS_SCHEMA_DIR:=$PWD/build/data}"
- export XDG_RUNTIME_DIR GSETTINGS_SCHEMA_DIR
-
- dbus-run-session xvfb-run -s '+iglx -noreset' meson test -C build
-)
-
-package() {
- DESTDIR="$pkgdir" meson install -C build
-}
Copied: mutter/repos/extra-x86_64/PKGBUILD (from rev 348470, mutter/trunk/PKGBUILD)
===================================================================
--- PKGBUILD (rev 0)
+++ PKGBUILD 2019-03-16 13:35:08 UTC (rev 348471)
@@ -0,0 +1,54 @@
+# 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.32.0+15+gc96cf0608
+pkgrel=1
+pkgdesc="A window manager for GNOME"
+url="https://gitlab.gnome.org/GNOME/mutter"
+arch=(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 pipewire xorg-server-xwayland)
+makedepends=(gobject-introspection git egl-wayland meson xorg-server)
+checkdepends=(xorg-server-xvfb)
+groups=(gnome)
+_commit=c96cf0608dd5e92369447ddbba9f63b7a2c84c0f # master
+source=("git+https://gitlab.gnome.org/GNOME/mutter.git#commit=$_commit"
+ 216.patch)
+sha256sums=('SKIP'
+ 'ed4f3cf738a3cffdf8a6e1a352bf24d74078c3b26fb9262c5746e0d95b9df756')
+
+pkgver() {
+ cd $pkgname
+ git describe --tags | sed 's/-/+/g'
+}
+
+prepare() {
+ cd $pkgname
+
+ # https://gitlab.gnome.org/GNOME/mutter/merge_requests/216
+ git apply -3 ../216.patch
+}
+
+build() {
+ arch-meson $pkgname build \
+ -D egl_device=true \
+ -D wayland_eglstream=true \
+ -D installed_tests=false
+ ninja -C build
+}
+
+check() (
+ mkdir -p -m 700 "${XDG_RUNTIME_DIR:=$PWD/runtime-dir}"
+ glib-compile-schemas "${GSETTINGS_SCHEMA_DIR:=$PWD/build/data}"
+ export XDG_RUNTIME_DIR GSETTINGS_SCHEMA_DIR
+
+ dbus-run-session xvfb-run -s '+iglx -noreset' meson test -C build
+)
+
+package() {
+ DESTDIR="$pkgdir" meson install -C build
+}
More information about the arch-commits
mailing list