- Update to new upstream stable 1.2.6 release, add 3 patches for
gnome-shell issues
This commit is contained in:
		
							parent
							
								
									52d0ded702
								
							
						
					
					
						commit
						b81ddcb6e3
					
				| @ -1 +1,2 @@ | |||||||
| clutter-1.2.4.tar.bz2 | clutter-1.2.4.tar.bz2 | ||||||
|  | clutter-1.2.6.tar.bz2 | ||||||
|  | |||||||
							
								
								
									
										53
									
								
								Call-backend-handle_event-from-clutter_x11_handle_ev.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								Call-backend-handle_event-from-clutter_x11_handle_ev.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,53 @@ | |||||||
|  | From 0db0c1925b691d195fd779ef6e6d851d2135d790 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Owen W. Taylor <otaylor@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 | ||||||
|  | 
 | ||||||
							
								
								
									
										41
									
								
								Ignore-unexpected-GLX_BufferSwapComplete.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								Ignore-unexpected-GLX_BufferSwapComplete.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,41 @@ | |||||||
|  | From 0fca6056aa9f9f609836330597bd0139bf0be2c4 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Owen W. Taylor <otaylor@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 | ||||||
|  | 
 | ||||||
							
								
								
									
										51
									
								
								Use-a-native-format-for-atlas-textures.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								Use-a-native-format-for-atlas-textures.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,51 @@ | |||||||
|  | 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 |   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 | ||||||
|  | 
 | ||||||
							
								
								
									
										19
									
								
								clutter.spec
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								clutter.spec
									
									
									
									
									
								
							| @ -1,5 +1,5 @@ | |||||||
| Name:           clutter | Name:           clutter | ||||||
| Version:        1.2.4 | Version:        1.2.6 | ||||||
| Release:        1%{?dist} | Release:        1%{?dist} | ||||||
| Summary:        Open Source software library for creating rich graphical user interfaces | Summary:        Open Source software library for creating rich graphical user interfaces | ||||||
| 
 | 
 | ||||||
| @ -10,6 +10,13 @@ URL:            http://www.clutter-project.org/ | |||||||
| Source0:        http://www.clutter-project.org/sources/%{name}/1.0/%{name}-%{version}.tar.bz2 | Source0:        http://www.clutter-project.org/sources/%{name}/1.0/%{name}-%{version}.tar.bz2 | ||||||
| BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) | 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 | Requires:       gobject-introspection | ||||||
| # FIXME to remove when all the bits have been merged into their | # FIXME to remove when all the bits have been merged into their | ||||||
| # libraries | # libraries | ||||||
| @ -59,6 +66,10 @@ This package contains documentation for clutter. | |||||||
| %prep | %prep | ||||||
| %setup -q | %setup -q | ||||||
| 
 | 
 | ||||||
|  | %patch0 -p1 -b .atlas-textures | ||||||
|  | %patch1 -p1 -b .handle-event | ||||||
|  | %patch2 -p1 -b .buffer-swap-complete | ||||||
|  | 
 | ||||||
| %build | %build | ||||||
| %configure --enable-gtk-doc --enable-introspection --enable-xinput | %configure --enable-gtk-doc --enable-introspection --enable-xinput | ||||||
| make %{?_smp_mflags} V=1 | make %{?_smp_mflags} V=1 | ||||||
| @ -98,6 +109,12 @@ rm -rf %{buildroot} | |||||||
| %{_datadir}/gtk-doc/html/cogl | %{_datadir}/gtk-doc/html/cogl | ||||||
| 
 | 
 | ||||||
| %changelog | %changelog | ||||||
|  | * Fri Apr 30 2010 Owen Taylor <otaylor@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@gmail.com> 1.2.4-1 | * Tue Mar 20 2010 Peter Robinson <pbrobinson@gmail.com> 1.2.4-1 | ||||||
| - Update to new upstream stable 1.2.4 release | - Update to new upstream stable 1.2.4 release | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user