Update to 1.5.8

Drop unneeded patches
This commit is contained in:
Owen W. Taylor 2010-11-29 19:00:00 -05:00
parent 23bb0d6136
commit eb2f420980
6 changed files with 11 additions and 215 deletions

1
.gitignore vendored
View File

@ -2,3 +2,4 @@ clutter-1.2.10.tar.bz2
/clutter-1.3.12.tar.bz2
/clutter-1.3.14.tar.bz2
/clutter-1.4.0.tar.bz2
/clutter-1.5.8.tar.bz2

View File

@ -1,42 +0,0 @@
From e23cfbb2f0b9e52154401cb96118085811b62f09 Mon Sep 17 00:00:00 2001
From: Owen Taylor <otaylor@fresnel.(none)>
Date: Thu, 29 Apr 2010 19:47:56 -0400
Subject: [PATCH 1/3] Use a native format for atlas textures
Since we create frame buffer objects for atlas textures, we should use
a format that can be used as a rendering target. For this reason, use
an internal format of ARGB instead of RGBA when creating the texture.
(We don't actually render to it, but the Radeon Mesa drivers aren't
sophisticated enough to deal with a FBO that can be read from but
can't be rendered to. On other hardware, this is probably pretty much
neutral for efficiency.)
http://bugzilla.openedhand.com/show_bug.cgi?id=2100
--- clutter/cogl/cogl/cogl-atlas-texture.c~ 2010-08-12 07:30:06.000000000 -0400
+++ clutter/cogl/cogl/cogl-atlas-texture.c 2010-08-31 10:53:50.000000000 -0400
@@ -114,6 +114,15 @@
NULL);
}
+/* Best guess at native frame buffer formats; using these makes the
+ * Mesa framebuffer support happier on Radeon cards that can't
+ * render to arbitrarily ordered pixels */
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
+#define NATIVE_PIXEL_FORMAT COGL_PIXEL_FORMAT_BGRA_8888_PRE
+#else
+#define NATIVE_PIXEL_FORMAT COGL_PIXEL_FORMAT_ARGB_8888_PRE
+#endif
+
CoglAtlas *
_cogl_atlas_texture_get_atlas (void)
{
@@ -121,7 +130,7 @@
if (ctx->atlas == COGL_INVALID_HANDLE)
{
- ctx->atlas = _cogl_atlas_new (COGL_PIXEL_FORMAT_RGBA_8888,
+ ctx->atlas = _cogl_atlas_new (NATIVE_PIXEL_FORMAT,
0,
_cogl_atlas_texture_update_position_cb);

View File

@ -1,24 +1,17 @@
Name: clutter
Version: 1.4.0
Release: 4%{?dist}
Version: 1.5.8
Release: 1%{?dist}
Summary: Open Source software library for creating rich graphical user interfaces
Group: Development/Libraries
License: LGPLv2+
URL: http://www.clutter-project.org/
#VCS: git://git.clutter-project.org/clutter#clutter-1.4
Source0: http://www.clutter-project.org/sources/%{name}/1.4/%{name}-%{version}.tar.bz2
# http://bugzilla.openedhand.com/show_bug.cgi?id=2100
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
# http://bugzilla.clutter-project.org/attachment.cgi?id=2366
Patch2: xsettings-dont-use-the-xsettings-watch-function-fu.patch
#VCS: git://git.clutter-project.org/clutter#master
Source0: http://www.clutter-project.org/sources/%{name}/1.5/%{name}-%{version}.tar.bz2
BuildRequires: glib2-devel mesa-libGL-devel gtk2-devel pkgconfig pango-devel
BuildRequires: gobject-introspection-devel >= 0.9.6
BuildRequires: json-glib-devel
BuildRequires: json-glib-devel >= 0.12.0
BuildRequires: libXdamage-devel gettext gtk-doc
# Bootstrap requirements
BuildRequires: gtk-doc
@ -60,10 +53,6 @@ This package contains documentation for clutter.
%prep
%setup -q
%patch0 -p0 -b .atlas-textures
%patch1 -p1 -b .glXDestroyPixmap
%patch2 -p1 -b .xsettings
%build
(if ! test -x configure; then NOCONFIGURE=1 ./autogen.sh; CONFIGFLAGS=--enable-gtk-doc; fi;
%configure $CONFIGFLAGS \
@ -115,6 +104,10 @@ rm -rf %{buildroot}
%{_datadir}/gtk-doc/html/cally
%changelog
* Mon Nov 29 2010 Owen Taylor <otaylor@redhat.com> - 1.5.8-2
- Update to 1.5.8
- Drop unneeded patches
* Mon Nov 22 2010 Dan Williams <dcbw@redhat.com> - 1.4.0-4
- Add a patch cherry-picked from upstream for
http://bugzilla.clutter-project.org/attachment.cgi?id=2366

View File

@ -1,70 +0,0 @@
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

View File

@ -1 +1 @@
329b6ac4e14b6f63b23297cfbb05af93 clutter-1.4.0.tar.bz2
13ec874ac78a2507c4b7fa064a77ea04 clutter-1.5.8.tar.bz2

View File

@ -1,86 +0,0 @@
From c7d388e987063612d178b2412559b463b5e56f7a Mon Sep 17 00:00:00 2001
From: Owen W. Taylor <otaylor@fishsoup.net>
Date: Fri, 12 Nov 2010 18:53:51 -0500
Subject: [PATCH] xsettings: don't use the xsettings watch function functionality
The "watch" function functionality in xsettings-client.c is designed
for setups like GDK where filters are per-window. If we are going
to pass all events to _clutter_xsettings_client_process_event()
anyways, we can just pass in NULL for watch.
This avoids a nasty infinite loop where an event would get processed
triggering removing a filter and adding a new filter, which would
immediately run and remove a filter and add another and so on
ad-infinitum.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2415
---
clutter/x11/clutter-backend-x11.c | 37 ++++---------------------------------
1 files changed, 4 insertions(+), 33 deletions(-)
diff --git a/clutter/x11/clutter-backend-x11.c b/clutter/x11/clutter-backend-x11.c
index 8a61741..3b7b579 100644
--- a/clutter/x11/clutter-backend-x11.c
+++ b/clutter/x11/clutter-backend-x11.c
@@ -120,38 +120,6 @@ xsettings_filter (XEvent *xevent,
return CLUTTER_X11_FILTER_CONTINUE;
}
-static Bool
-clutter_backend_x11_xsettings_watch (Window window,
- Bool is_start,
- long mask,
- void *cb_data)
-{
- ClutterBackendX11 *backend_x11 = cb_data;
-
- if (is_start)
- {
- backend_x11->xsettings_xwin = window;
- if (!backend_x11->xsettings_xwin)
- return False;
-
- clutter_x11_add_filter (xsettings_filter, backend_x11);
-
- CLUTTER_NOTE (BACKEND, "Added filter on XSettings manager window 0x%x",
- (unsigned int) backend_x11->xsettings_xwin);
- }
- else
- {
- CLUTTER_NOTE (BACKEND, "Removed filter on XSettings manager window 0x%x",
- (unsigned int) backend_x11->xsettings_xwin);
-
- clutter_x11_remove_filter (xsettings_filter, backend_x11);
-
- backend_x11->xsettings_xwin = None;
- }
-
- return True;
-}
-
static void
clutter_backend_x11_xsettings_notify (const char *name,
XSettingsAction action,
@@ -336,9 +304,11 @@ clutter_backend_x11_post_parse (ClutterBackend *backend,
_clutter_xsettings_client_new (backend_x11->xdpy,
backend_x11->xscreen_num,
clutter_backend_x11_xsettings_notify,
- clutter_backend_x11_xsettings_watch,
+ NULL,
backend_x11);
+ clutter_x11_add_filter (xsettings_filter, backend_x11);
+
if (clutter_synchronise)
XSynchronize (backend_x11->xdpy, True);
@@ -426,6 +396,7 @@ clutter_backend_x11_finalize (GObject *gobject)
g_free (backend_x11->display_name);
+ clutter_x11_remove_filter (xsettings_filter, backend_x11);
_clutter_xsettings_client_destroy (backend_x11->xsettings);
XCloseDisplay (backend_x11->xdpy);
--
1.7.3.2