rpms/clutter/devel Call-backend-handle_event-from-clutter_x11_handle_ev.patch, NONE, 1.1 Ignore-unexpected-GLX_BufferSwapComplete.patch, NONE, 1.1 Use-a-native-format-for-atlas-textures.patch, NONE, 1.1 .cvsignore, 1.28, 1.29 clutter.spec, 1.48, 1.49 sources, 1.28, 1.29

Peter Robinson pbrobinson at fedoraproject.org
Mon May 3 10:18:01 UTC 2010


Author: pbrobinson

Update of /cvs/pkgs/rpms/clutter/devel
In directory cvs01.phx2.fedoraproject.org:/tmp/cvs-serv10976

Modified Files:
	.cvsignore clutter.spec sources 
Added Files:
	Call-backend-handle_event-from-clutter_x11_handle_ev.patch 
	Ignore-unexpected-GLX_BufferSwapComplete.patch 
	Use-a-native-format-for-atlas-textures.patch 
Log Message:
- Update to new upstream stable 1.2.6 release, add 3 patches for gnome-shell issues

Call-backend-handle_event-from-clutter_x11_handle_ev.patch:
 clutter-event-x11.c |   11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

--- NEW FILE Call-backend-handle_event-from-clutter_x11_handle_ev.patch ---
>From 0db0c1925b691d195fd779ef6e6d851d2135d790 Mon Sep 17 00:00:00 2001
From: Owen W. Taylor <otaylor at fishsoup.net>
Date: Fri, 30 Apr 2010 14:50:11 -0400
Subject: [PATCH 2/3] Call backend handle_event from clutter_x11_handle_event()

Whether events come from the main loop source or from
clutter_x11_handle_event(), we need to feed them to the backend
virtual handle_event function. This fixes problems with clients
using clutter_x11_handle_event() hanging because
GLXBufferSwapComplete events aren't received.

http://bugzilla.openedhand.com/show_bug.cgi?id=2101
---
 clutter/x11/clutter-event-x11.c |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/clutter/x11/clutter-event-x11.c b/clutter/x11/clutter-event-x11.c
index 0d8c08d..20a77fd 100644
--- a/clutter/x11/clutter-event-x11.c
+++ b/clutter/x11/clutter-event-x11.c
@@ -1048,13 +1048,14 @@ ClutterX11FilterReturn
 clutter_x11_handle_event (XEvent *xevent)
 {
   ClutterBackend      *backend;
+  ClutterBackendX11Class *backend_x11_class;
   ClutterEvent        *event;
   ClutterMainContext  *clutter_context;
   ClutterX11FilterReturn result;
   gint                 spin = 1;
 
   /* The return values here are someone approximate; we return
-   * CLUTTER_X11_FILTER_REMOVE if and only if a clutter event is
+   * CLUTTER_X11_FILTER_REMOVE if a clutter event is
    * generated for the event. This mostly, but not entirely,
    * corresponds to whether other event processing should be
    * excluded. As long as the stage window is not shared with another
@@ -1068,6 +1069,13 @@ clutter_x11_handle_event (XEvent *xevent)
 
   clutter_context = _clutter_context_get_default ();
   backend = clutter_context->backend;
+  backend_x11_class = CLUTTER_BACKEND_X11_GET_CLASS (backend);
+
+  /* If the backend just observed the event and didn't want it
+   * removed it could return FALSE, so assume that a TRUE return
+   * means that our caller should also do no further processing. */
+  if (backend_x11_class->handle_event (CLUTTER_BACKEND_X11(backend), xevent))
+    return CLUTTER_X11_FILTER_REMOVE;
 
   event = clutter_event_new (CLUTTER_NOTHING);
 
-- 
1.7.0.1


Ignore-unexpected-GLX_BufferSwapComplete.patch:
 clutter-event-glx.c |   12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

--- NEW FILE Ignore-unexpected-GLX_BufferSwapComplete.patch ---
>From 0fca6056aa9f9f609836330597bd0139bf0be2c4 Mon Sep 17 00:00:00 2001
From: Owen W. Taylor <otaylor at fishsoup.net>
Date: Fri, 30 Apr 2010 14:56:07 -0400
Subject: [PATCH 3/3] Ignore unexpected GLX_BufferSwapComplete

A server that supports GLX_BufferSwapComplete will always send
these events, so we should just silently ignore them if we've
chosen not to take advantage of the INTEL_swap_event GLX
extension.

http://bugzilla.openedhand.com/show_bug.cgi?id=2102
---
 clutter/glx/clutter-event-glx.c |   11 ++++-------
 1 files changed, 4 insertions(+), 7 deletions(-)

diff --git a/clutter/glx/clutter-event-glx.c b/clutter/glx/clutter-event-glx.c
index 2034534..27b1d2b 100644
--- a/clutter/glx/clutter-event-glx.c
+++ b/clutter/glx/clutter-event-glx.c
@@ -82,14 +82,11 @@ clutter_backend_glx_handle_event (ClutterBackendX11 *backend_x11,
 
       if (stage_x11->xwin == swap_complete_event->drawable)
         {
-          if (G_UNLIKELY (stage_glx->pending_swaps == 0))
-            {
-              g_warning ("Spurious GLX_BufferSwapComplete event received for "
-                         "stage drawable = 0x%08lx",
-                         swap_complete_event->drawable);
-            }
-          else
+	  /* We don't have to select for swap events, so we'll
+	   * get them even if we are choosing not to use them */
+          if (stage_glx->pending_swaps > 0)
             stage_glx->pending_swaps--;
+
           return TRUE;
         }
     }
-- 
1.7.0.1


Use-a-native-format-for-atlas-textures.patch:
 cogl-atlas-texture.c |   12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

--- NEW FILE Use-a-native-format-for-atlas-textures.patch ---
>From e23cfbb2f0b9e52154401cb96118085811b62f09 Mon Sep 17 00:00:00 2001
From: Owen Taylor <otaylor at 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 |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/clutter/cogl/cogl/cogl-atlas-texture.c b/clutter/cogl/cogl/cogl-atlas-texture.c
index b9219e4..3fafb58 100644
--- a/clutter/cogl/cogl/cogl-atlas-texture.c
+++ b/clutter/cogl/cogl/cogl-atlas-texture.c
@@ -70,6 +70,15 @@
 #define GL_FRAMEBUFFER_COMPLETE 0x8CD5
 #endif
 
+/* 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
+
 static void _cogl_atlas_texture_free (CoglAtlasTexture *sub_tex);
 
 COGL_HANDLE_DEFINE (AtlasTexture, atlas_texture);
@@ -868,7 +877,7 @@ _cogl_atlas_texture_reserve_space (CoglAtlasTexture    *new_sub_tex,
             _cogl_texture_2d_new_with_size (_cogl_atlas_get_width (new_atlas),
                                             _cogl_atlas_get_height (new_atlas),
                                             COGL_TEXTURE_NONE,
-                                            COGL_PIXEL_FORMAT_RGBA_8888)) ==
+                                            NATIVE_PIXEL_FORMAT)) ==
            COGL_INVALID_HANDLE)
     {
       COGL_NOTE (ATLAS, "Could not create a CoglTexture2D");
-- 
1.7.0.1



Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/clutter/devel/.cvsignore,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -p -r1.28 -r1.29
--- .cvsignore	30 Mar 2010 09:26:33 -0000	1.28
+++ .cvsignore	3 May 2010 10:17:48 -0000	1.29
@@ -1 +1,2 @@
 clutter-1.2.4.tar.bz2
+clutter-1.2.6.tar.bz2


Index: clutter.spec
===================================================================
RCS file: /cvs/pkgs/rpms/clutter/devel/clutter.spec,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -p -r1.48 -r1.49
--- clutter.spec	30 Mar 2010 09:26:33 -0000	1.48
+++ clutter.spec	3 May 2010 10:17:51 -0000	1.49
@@ -1,5 +1,5 @@
 Name:           clutter
-Version:        1.2.4
+Version:        1.2.6
 Release:        1%{?dist}
 Summary:        Open Source software library for creating rich graphical user interfaces
 
@@ -10,6 +10,13 @@ URL:            http://www.clutter-proje
 Source0:        http://www.clutter-project.org/sources/%{name}/1.0/%{name}-%{version}.tar.bz2
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
+# http://bugzilla.openedhand.com/show_bug.cgi?id=2100
+Patch0:         Use-a-native-format-for-atlas-textures.patch
+# http://bugzilla.openedhand.com/show_bug.cgi?id=2101
+Patch1:         Call-backend-handle_event-from-clutter_x11_handle_ev.patch
+# http://bugzilla.openedhand.com/show_bug.cgi?id=2102
+Patch2:         Ignore-unexpected-GLX_BufferSwapComplete.patch
+
 Requires:       gobject-introspection
 # FIXME to remove when all the bits have been merged into their
 # libraries
@@ -59,6 +66,10 @@ This package contains documentation for 
 %prep
 %setup -q
 
+%patch0 -p1 -b .atlas-textures
+%patch1 -p1 -b .handle-event
+%patch2 -p1 -b .buffer-swap-complete
+
 %build
 %configure --enable-gtk-doc --enable-introspection --enable-xinput
 make %{?_smp_mflags} V=1
@@ -98,6 +109,12 @@ rm -rf %{buildroot}
 %{_datadir}/gtk-doc/html/cogl
 
 %changelog
+* Fri Apr 30 2010 Owen Taylor <otaylor at redhat.com> - 1.2.6-1
+- Update to new upstream stable 1.2.6 release
+- Work around Radeon driver problem with color channel confusion.
+- Fix Mutter not seeing BufferSwapComplete events and freezing
+- Remove incorrect warning message about BufferSwapComplete events
+
 * Tue Mar 20 2010 Peter Robinson <pbrobinson at gmail.com> 1.2.4-1
 - Update to new upstream stable 1.2.4 release
 


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/clutter/devel/sources,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -p -r1.28 -r1.29
--- sources	30 Mar 2010 09:26:33 -0000	1.28
+++ sources	3 May 2010 10:17:51 -0000	1.29
@@ -1 +1,2 @@
 3800dcc825e25d58e7ef93de26cd9759  clutter-1.2.4.tar.bz2
+eba5af33e966d9c9b0caab7d9e019f0d  clutter-1.2.6.tar.bz2



More information about the scm-commits mailing list