Update to 3.22.7
This commit is contained in:
parent
0afcab3b85
commit
255e86a4bd
1
.gitignore
vendored
1
.gitignore
vendored
@ -149,3 +149,4 @@ gtk+-2.90.5.tar.bz2
|
||||
/gtk+-3.22.4.tar.xz
|
||||
/gtk+-3.22.5.tar.xz
|
||||
/gtk+-3.22.6.tar.xz
|
||||
/gtk+-3.22.7.tar.xz
|
||||
|
@ -1,103 +0,0 @@
|
||||
From ab66c3d7bfaa316fc80a19e8aae32949b80068c1 Mon Sep 17 00:00:00 2001
|
||||
From: Carlos Garnacho <carlosg@gnome.org>
|
||||
Date: Thu, 22 Dec 2016 19:22:07 +0100
|
||||
Subject: wayland: Disable EGL swap interval
|
||||
|
||||
We have a frame clock that ensures rendering is done as per the
|
||||
output vsync. There is no need to have Mesa do the same for us.
|
||||
|
||||
This, most notably, ensures Mesa doesn't schedule frame callbacks
|
||||
that will be left unattended if the compositor stops throttling
|
||||
frames for its surface, this is eg. the case if the toplevel is
|
||||
moved to another workspace.
|
||||
|
||||
Also, given a SwapInterval!=0 will always bring these unexpected
|
||||
side effects, check that it's possible to disable it, and spew
|
||||
a debug message if that isn't the case.
|
||||
|
||||
https://bugzilla.gnome.org/show_bug.cgi?id=769835
|
||||
---
|
||||
gdk/wayland/gdkdisplay-wayland.h | 1 +
|
||||
gdk/wayland/gdkglcontext-wayland.c | 25 ++++++++++++++++++++++---
|
||||
2 files changed, 23 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/gdk/wayland/gdkdisplay-wayland.h b/gdk/wayland/gdkdisplay-wayland.h
|
||||
index a68940f..a9fd483 100644
|
||||
--- a/gdk/wayland/gdkdisplay-wayland.h
|
||||
+++ b/gdk/wayland/gdkdisplay-wayland.h
|
||||
@@ -120,6 +120,7 @@ struct _GdkWaylandDisplay
|
||||
guint have_egl_buffer_age : 1;
|
||||
guint have_egl_swap_buffers_with_damage : 1;
|
||||
guint have_egl_surfaceless_context : 1;
|
||||
+ EGLint egl_min_swap_interval;
|
||||
};
|
||||
|
||||
struct _GdkWaylandDisplayClass
|
||||
diff --git a/gdk/wayland/gdkglcontext-wayland.c b/gdk/wayland/gdkglcontext-wayland.c
|
||||
index 6573688..254900d 100644
|
||||
--- a/gdk/wayland/gdkglcontext-wayland.c
|
||||
+++ b/gdk/wayland/gdkglcontext-wayland.c
|
||||
@@ -369,6 +369,7 @@ gdk_wayland_display_init_gl (GdkDisplay *display)
|
||||
static gboolean
|
||||
find_eglconfig_for_window (GdkWindow *window,
|
||||
EGLConfig *egl_config_out,
|
||||
+ EGLint *min_swap_interval_out,
|
||||
GError **error)
|
||||
{
|
||||
GdkDisplay *display = gdk_window_get_display (window);
|
||||
@@ -376,7 +377,7 @@ find_eglconfig_for_window (GdkWindow *window,
|
||||
GdkVisual *visual = gdk_window_get_visual (window);
|
||||
EGLint attrs[MAX_EGL_ATTRS];
|
||||
EGLint count;
|
||||
- EGLConfig *configs;
|
||||
+ EGLConfig *configs, chosen_config;
|
||||
gboolean use_rgba;
|
||||
|
||||
int i = 0;
|
||||
@@ -429,9 +430,20 @@ find_eglconfig_for_window (GdkWindow *window,
|
||||
}
|
||||
|
||||
/* Pick first valid configuration i guess? */
|
||||
+ chosen_config = configs[0];
|
||||
+
|
||||
+ if (!eglGetConfigAttrib (display_wayland->egl_display, chosen_config,
|
||||
+ EGL_MIN_SWAP_INTERVAL, min_swap_interval_out))
|
||||
+ {
|
||||
+ g_set_error_literal (error, GDK_GL_ERROR,
|
||||
+ GDK_GL_ERROR_NOT_AVAILABLE,
|
||||
+ "Could not retrieve the minimum swap interval");
|
||||
+ g_free (configs);
|
||||
+ return FALSE;
|
||||
+ }
|
||||
|
||||
if (egl_config_out != NULL)
|
||||
- *egl_config_out = configs[0];
|
||||
+ *egl_config_out = chosen_config;
|
||||
|
||||
g_free (configs);
|
||||
|
||||
@@ -465,7 +477,9 @@ gdk_wayland_window_create_gl_context (GdkWindow *window,
|
||||
return NULL;
|
||||
}
|
||||
|
||||
- if (!find_eglconfig_for_window (window, &config, error))
|
||||
+ if (!find_eglconfig_for_window (window, &config,
|
||||
+ &display_wayland->egl_min_swap_interval,
|
||||
+ error))
|
||||
return NULL;
|
||||
|
||||
context = g_object_new (GDK_TYPE_WAYLAND_GL_CONTEXT,
|
||||
@@ -543,5 +557,10 @@ gdk_wayland_display_make_gl_context_current (GdkDisplay *display,
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
+ if (display_wayland->egl_min_swap_interval == 0)
|
||||
+ eglSwapInterval (display_wayland->egl_display, 0);
|
||||
+ else
|
||||
+ g_debug ("Can't disable GL swap interval");
|
||||
+
|
||||
return TRUE;
|
||||
}
|
||||
--
|
||||
cgit v0.12
|
||||
|
11
gtk3.spec
11
gtk3.spec
@ -17,17 +17,14 @@
|
||||
%global _changelog_trimtime %(date +%s -d "1 year ago")
|
||||
|
||||
Name: gtk3
|
||||
Version: 3.22.6
|
||||
Release: 2%{?dist}
|
||||
Version: 3.22.7
|
||||
Release: 1%{?dist}
|
||||
Summary: The GIMP ToolKit (GTK+), a library for creating GUIs for X
|
||||
|
||||
License: LGPLv2+
|
||||
URL: http://www.gtk.org
|
||||
Source0: http://download.gnome.org/sources/gtk+/3.22/gtk+-%{version}.tar.xz
|
||||
|
||||
# https://bugzilla.gnome.org/show_bug.cgi?id=769835
|
||||
Patch0: disable-egl-swap-interval.patch
|
||||
|
||||
BuildRequires: pkgconfig(atk) >= %{atk_version}
|
||||
BuildRequires: pkgconfig(atk-bridge-2.0)
|
||||
BuildRequires: pkgconfig(glib-2.0) >= %{glib2_version}
|
||||
@ -164,7 +161,6 @@ the functionality of the installed %{name} package.
|
||||
|
||||
%prep
|
||||
%setup -q -n gtk+-%{version}
|
||||
%patch0 -p1 -b .egl-swap-interval
|
||||
|
||||
%build
|
||||
(if ! test -x configure; then NOCONFIGURE=1 ./autogen.sh; CONFIGFLAGS=--enable-gtk-doc; fi;
|
||||
@ -337,6 +333,9 @@ gtk-query-immodules-3.0-%{__isa_bits} --update-cache
|
||||
%{_datadir}/installed-tests
|
||||
|
||||
%changelog
|
||||
* Mon Jan 16 2017 Kalev Lember <klember@redhat.com> - 3.22.7-1
|
||||
- Update to 3.22.7
|
||||
|
||||
* Tue Jan 10 2017 Michael Catanzaro <mcatanzaro@gnome.org> - 3.22.6-2
|
||||
- Add patch for GNOME #769835
|
||||
|
||||
|
2
sources
2
sources
@ -1 +1 @@
|
||||
SHA512 (gtk+-3.22.6.tar.xz) = 1db9d165bffa6543f58fdc704c6f3faa1a69bf9aa8c4dde5cf594633b6b4b5fe1b1fe8bb2ae30ffac7b069631f7f48c2406ed7a91e365d52519f1a42127c07d6
|
||||
SHA512 (gtk+-3.22.7.tar.xz) = c4cf49c05a3553290013749e58f8179ff4c5ae74876e62a3d1870784b1da8846b16bad189baa57aabb65b10aa6b687d188eaf0460d83034cf47b7df5d55ddd2c
|
||||
|
Loading…
Reference in New Issue
Block a user