Date: Saturday, March 8, 2014 @ 17:24:07 Author: ioni Revision: 207401
fix blinking issue with gnome using nvidia 334.21 Added: clutter/repos/extra-x86_64/fix_buffer_age.patch Modified: clutter/repos/extra-i686/PKGBUILD clutter/repos/extra-x86_64/PKGBUILD -----------------------------------+ extra-i686/PKGBUILD | 9 ++++++--- extra-x86_64/PKGBUILD | 9 ++++++--- extra-x86_64/fix_buffer_age.patch | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 46 insertions(+), 6 deletions(-) Modified: extra-i686/PKGBUILD =================================================================== --- extra-i686/PKGBUILD 2014-03-08 16:16:58 UTC (rev 207400) +++ extra-i686/PKGBUILD 2014-03-08 16:24:07 UTC (rev 207401) @@ -5,7 +5,7 @@ pkgname=clutter pkgver=1.16.4 -pkgrel=1 +pkgrel=2 pkgdesc="A GObject based library for creating fast, visually rich graphical user interfaces" arch=('i686' 'x86_64') url="http://clutter-project.org/" @@ -12,11 +12,14 @@ license=('LGPL') depends=('cogl' 'mesa' 'json-glib' 'atk' 'libxi' 'libxkbcommon' 'libevdev') makedepends=('gobject-introspection') -source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz) -sha256sums=('cf50836ec5503577b73f75f984577610881b3e2ff7a327bb5b6918b431b51b65') +source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz + fix_buffer_age.patch) +sha256sums=('cf50836ec5503577b73f75f984577610881b3e2ff7a327bb5b6918b431b51b65' + 'e254b26663c88dfba756934f011451c0551e52bb70e2de037835aea267ed7bda') build() { cd "$pkgname-$pkgver" + patch -Np1 -i ../fix_buffer_age.patch ./configure --prefix=/usr --enable-introspection \ --enable-wayland-backend --enable-egl-backend --enable-evdev-input \ --enable-wayland-compositor Modified: extra-x86_64/PKGBUILD =================================================================== --- extra-x86_64/PKGBUILD 2014-03-08 16:16:58 UTC (rev 207400) +++ extra-x86_64/PKGBUILD 2014-03-08 16:24:07 UTC (rev 207401) @@ -5,7 +5,7 @@ pkgname=clutter pkgver=1.16.4 -pkgrel=1 +pkgrel=2 pkgdesc="A GObject based library for creating fast, visually rich graphical user interfaces" arch=('i686' 'x86_64') url="http://clutter-project.org/" @@ -12,11 +12,14 @@ license=('LGPL') depends=('cogl' 'mesa' 'json-glib' 'atk' 'libxi' 'libxkbcommon' 'libevdev') makedepends=('gobject-introspection') -source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz) -sha256sums=('cf50836ec5503577b73f75f984577610881b3e2ff7a327bb5b6918b431b51b65') +source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz + fix_buffer_age.patch) +sha256sums=('cf50836ec5503577b73f75f984577610881b3e2ff7a327bb5b6918b431b51b65' + 'e254b26663c88dfba756934f011451c0551e52bb70e2de037835aea267ed7bda') build() { cd "$pkgname-$pkgver" + patch -Np1 -i ../fix_buffer_age.patch ./configure --prefix=/usr --enable-introspection \ --enable-wayland-backend --enable-egl-backend --enable-evdev-input \ --enable-wayland-compositor Added: extra-x86_64/fix_buffer_age.patch =================================================================== --- extra-x86_64/fix_buffer_age.patch (rev 0) +++ extra-x86_64/fix_buffer_age.patch 2014-03-08 16:24:07 UTC (rev 207401) @@ -0,0 +1,34 @@ +From 6665f47d66a871b6e1a5f4200282f42da043a0e8 Mon Sep 17 00:00:00 2001 +From: Adel Gadllah <adel.gadl...@gmail.com> +Date: Sun, 16 Feb 2014 21:07:43 +0000 +Subject: stage-cogl: Fix buffer_age code path + +Currently we where checking whether the damage_history list contains +more or equal then buffer_age entries. This is wrong because we prepend +our current clip to the list just before the check. + +Fix that to check whether we have more entries instead of more or equal. + +https://bugzilla.gnome.org/show_bug.cgi?id=724788 +--- +diff --git a/clutter/cogl/clutter-stage-cogl.c b/clutter/cogl/clutter-stage-cogl.c +index 86546b1..cff8444 100644 +--- a/clutter/cogl/clutter-stage-cogl.c ++++ b/clutter/cogl/clutter-stage-cogl.c +@@ -483,11 +483,12 @@ clutter_stage_cogl_redraw (ClutterStageWindow *stage_window) + + stage_cogl->damage_history = g_slist_prepend (stage_cogl->damage_history, current_damage); + +- if (age != 0 && !stage_cogl->dirty_backbuffer && g_slist_length (stage_cogl->damage_history) >= age) ++ if (age != 0 && !stage_cogl->dirty_backbuffer && g_slist_length (stage_cogl->damage_history) > age) + { + int i = 0; + GSList *tmp = NULL; +- for (tmp = stage_cogl->damage_history; tmp; tmp = tmp->next) ++ /* We skip the first entry because it is the clip_region itself */ ++ for (tmp = stage_cogl->damage_history->next; tmp; tmp = tmp->next) + { + _clutter_util_rectangle_union (clip_region, tmp->data, clip_region); + i++; +-- +cgit v0.9.2