* Tue Oct 5 2010 Owen Taylor <otaylor@redhat.com> - 1.4.0-3
- Add a patch cherry-picked from upstream for http://bugzilla.clutter-project.org/show_bug.cgi?id=2324 (gnome-shell crashes on root background changes)
This commit is contained in:
parent
8f6362c6dd
commit
51e81f5865
10
clutter.spec
10
clutter.spec
@ -1,6 +1,6 @@
|
|||||||
Name: clutter
|
Name: clutter
|
||||||
Version: 1.4.0
|
Version: 1.4.0
|
||||||
Release: 2%{?dist}
|
Release: 3%{?dist}
|
||||||
Summary: Open Source software library for creating rich graphical user interfaces
|
Summary: Open Source software library for creating rich graphical user interfaces
|
||||||
|
|
||||||
Group: Development/Libraries
|
Group: Development/Libraries
|
||||||
@ -11,6 +11,8 @@ Source0: http://www.clutter-project.org/sources/%{name}/1.4/%{name}-%{ver
|
|||||||
|
|
||||||
# http://bugzilla.openedhand.com/show_bug.cgi?id=2100
|
# http://bugzilla.openedhand.com/show_bug.cgi?id=2100
|
||||||
Patch0: Use-a-native-format-for-atlas-textures.patch
|
Patch0: Use-a-native-format-for-atlas-textures.patch
|
||||||
|
# http://bugzilla.clutter-project.org/show_bug.cgi?id=2324
|
||||||
|
Patch1: cogl-x11-Trap-glXDestroyPixmap.patch
|
||||||
|
|
||||||
BuildRequires: glib2-devel mesa-libGL-devel gtk2-devel pkgconfig pango-devel
|
BuildRequires: glib2-devel mesa-libGL-devel gtk2-devel pkgconfig pango-devel
|
||||||
BuildRequires: gobject-introspection-devel >= 0.9.6
|
BuildRequires: gobject-introspection-devel >= 0.9.6
|
||||||
@ -57,6 +59,7 @@ This package contains documentation for clutter.
|
|||||||
%setup -q
|
%setup -q
|
||||||
|
|
||||||
%patch0 -p0 -b .atlas-textures
|
%patch0 -p0 -b .atlas-textures
|
||||||
|
%patch1 -p1 -b .glXDestroyPixmap
|
||||||
|
|
||||||
%build
|
%build
|
||||||
(if ! test -x configure; then NOCONFIGURE=1 ./autogen.sh; CONFIGFLAGS=--enable-gtk-doc; fi;
|
(if ! test -x configure; then NOCONFIGURE=1 ./autogen.sh; CONFIGFLAGS=--enable-gtk-doc; fi;
|
||||||
@ -109,6 +112,11 @@ rm -rf %{buildroot}
|
|||||||
%{_datadir}/gtk-doc/html/cally
|
%{_datadir}/gtk-doc/html/cally
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Oct 5 2010 Owen Taylor <otaylor@redhat.com> - 1.4.0-3
|
||||||
|
- Add a patch cherry-picked from upstream for
|
||||||
|
http://bugzilla.clutter-project.org/show_bug.cgi?id=2324
|
||||||
|
(gnome-shell crashes on root background changes)
|
||||||
|
|
||||||
* Wed Sep 29 2010 jkeating - 1.4.0-2
|
* Wed Sep 29 2010 jkeating - 1.4.0-2
|
||||||
- Rebuilt for gcc bug 634757
|
- Rebuilt for gcc bug 634757
|
||||||
|
|
||||||
|
70
cogl-x11-Trap-glXDestroyPixmap.patch
Normal file
70
cogl-x11-Trap-glXDestroyPixmap.patch
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
From 6af0ee2cbe2d6584b523809f160f56daf16eb583 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Emmanuele Bassi <ebassi@linux.intel.com>
|
||||||
|
Date: Mon, 4 Oct 2010 14:12:21 +0100
|
||||||
|
Subject: [PATCH] cogl-x11: Trap glXDestroyPixmap()
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
There are ordering issues in the pixmap destruction with current and
|
||||||
|
past X11 server, Mesa and dri2. Under some circumstances, an X pixmap
|
||||||
|
might be destroyed with the GLX pixmap still referencing it, and thus
|
||||||
|
the X server will decide to destroy the GLX pixmap as well; then, when
|
||||||
|
Cogl tries to destroy the GLX pixmap, it gets BadDrawable errors.
|
||||||
|
|
||||||
|
Clutter 1.2 used to trap + sync all calls to glXDestroyPixmap(), but
|
||||||
|
then we assumed that the ordering issue had been solved. So, we're back
|
||||||
|
to square 1.
|
||||||
|
|
||||||
|
I left a Big Fat Comment™ right above the glXDestroyPixmap() call
|
||||||
|
referencing the bug and the reasoning behind the trap, so that we don't
|
||||||
|
go and remove it in the future without checking that the issue has been
|
||||||
|
in fact solved.
|
||||||
|
|
||||||
|
http://bugzilla.clutter-project.org/show_bug.cgi?id=2324
|
||||||
|
---
|
||||||
|
clutter/cogl/cogl/winsys/cogl-texture-pixmap-x11.c | 22 ++++++++++++++++++++
|
||||||
|
1 files changed, 22 insertions(+), 0 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/clutter/cogl/cogl/winsys/cogl-texture-pixmap-x11.c b/clutter/cogl/cogl/winsys/cogl-texture-pixmap-x11.c
|
||||||
|
index 56097ea..be0c302 100644
|
||||||
|
--- a/clutter/cogl/cogl/winsys/cogl-texture-pixmap-x11.c
|
||||||
|
+++ b/clutter/cogl/cogl/winsys/cogl-texture-pixmap-x11.c
|
||||||
|
@@ -888,12 +888,34 @@ _cogl_texture_pixmap_x11_free_glx_pixmap (CoglTexturePixmapX11 *tex_pixmap)
|
||||||
|
{
|
||||||
|
if (tex_pixmap->glx_pixmap)
|
||||||
|
{
|
||||||
|
+ CoglXlibTrapState trap_state;
|
||||||
|
+
|
||||||
|
_COGL_GET_CONTEXT (ctx, NO_RETVAL);
|
||||||
|
|
||||||
|
if (tex_pixmap->pixmap_bound)
|
||||||
|
glXReleaseTexImage (_cogl_xlib_get_display (), tex_pixmap->glx_pixmap,
|
||||||
|
GLX_FRONT_LEFT_EXT);
|
||||||
|
+
|
||||||
|
+ /* FIXME - we need to trap errors and synchronize here because
|
||||||
|
+ * of ordering issues between the XPixmap destruction and the
|
||||||
|
+ * GLXPixmap destruction.
|
||||||
|
+ *
|
||||||
|
+ * If the X pixmap is destroyed, the GLX pixmap is destroyed as
|
||||||
|
+ * well immediately, and thus, when Cogl calls glXDestroyPixmap()
|
||||||
|
+ * it'll cause a BadDrawable error.
|
||||||
|
+ *
|
||||||
|
+ * this is technically a bug in the X server, which should not
|
||||||
|
+ * destroy either pixmaps until the call to glXDestroyPixmap(); so
|
||||||
|
+ * at some point we should revisit this code and remove the
|
||||||
|
+ * trap+sync after verifying that the destruction is indeed safe.
|
||||||
|
+ *
|
||||||
|
+ * for reference, see:
|
||||||
|
+ * http://bugzilla.clutter-project.org/show_bug.cgi?id=2324
|
||||||
|
+ */
|
||||||
|
+ _cogl_xlib_trap_errors (&trap_state);
|
||||||
|
glXDestroyPixmap (_cogl_xlib_get_display (), tex_pixmap->glx_pixmap);
|
||||||
|
+ XSync (_cogl_xlib_get_display (), False);
|
||||||
|
+ _cogl_xlib_untrap_errors (&trap_state);
|
||||||
|
|
||||||
|
tex_pixmap->glx_pixmap = None;
|
||||||
|
tex_pixmap->pixmap_bound = FALSE;
|
||||||
|
--
|
||||||
|
1.7.3.1
|
||||||
|
|
Loading…
Reference in New Issue
Block a user