diff --git a/gnome-session-3.0.1-renderer-blacklist.patch b/gnome-session-3.0.1-renderer-blacklist.patch new file mode 100644 index 0000000..d5fecd5 --- /dev/null +++ b/gnome-session-3.0.1-renderer-blacklist.patch @@ -0,0 +1,43 @@ +diff -up gnome-session-3.0.1/tools/gnome-session-check-accelerated-helper.c.blacklist gnome-session-3.0.1/tools/gnome-session-check-accelerated-helper.c +--- gnome-session-3.0.1/tools/gnome-session-check-accelerated-helper.c.blacklist 2011-03-22 16:31:43.000000000 -0400 ++++ gnome-session-3.0.1/tools/gnome-session-check-accelerated-helper.c 2011-04-27 13:01:15.132322955 -0400 +@@ -108,6 +108,21 @@ _has_hardware_gl (Display *display) + Window window = None; + const char *renderer; + int ret = 1; ++ int i; ++ ++ /* This is a quick-and-dirty list of things that we know don't work ++ * well enough to use. Since we tend to use only direct contexts, ++ * we can ignore a lot of really old drivers that won't have ++ * texture_from_pixmap in a direct context. ++ */ ++ static const char * const renderer_blacklist[] = { ++ "software rasterizer", /* Classic mesa software rendering */ ++ "softpipe", /* Gallium software rendering */ ++ "llvmpipe", /* Somewhat better Gallium software rendering */ ++ "R100", /* ATI Radeon R1xx */ ++ "R200", /* ATI Radeon R2xx */ ++ "Intel(R) 8" /* Intel 830-865 */ ++ }; + + int attrlist[] = { + GLX_RGBA, +@@ -143,13 +158,10 @@ _has_hardware_gl (Display *display) + goto out; + + renderer = (const char *) glGetString (GL_RENDERER); +- /* The current Mesa software GL renderer string is +- * "Software Rasterizer". +- * Gallium has softpipe and llvmpipe. */ +- if (strcasestr (renderer, "software rasterizer") != NULL || +- strcasestr (renderer, "softpipe") != NULL || +- strcasestr (renderer, "llvmpipe") != NULL) +- goto out; ++ for (i = 0; i < sizeof (renderer_blacklist) / sizeof (renderer_blacklist[0]); i++) { ++ if (strcasestr (renderer, renderer_blacklist[i]) != NULL) ++ goto out; ++ } + + /* we need to get the max texture size while we have a context, + * but we'll check its value later */ diff --git a/gnome-session.spec b/gnome-session.spec index 392d6f1..930f2a4 100644 --- a/gnome-session.spec +++ b/gnome-session.spec @@ -3,13 +3,16 @@ Summary: GNOME session manager Name: gnome-session Version: 3.0.1 -Release: 1%{?dist} +Release: 2%{?dist} URL: http://www.gnome.org #VCS: git:git://git.gnome.org/gnome-session Source0: http://download.gnome.org/sources/gnome-session/3.0/%{name}-%{version}.tar.bz2 Source1: gnome-authentication-agent.desktop Source2: gnome.desktop +# https://bugzilla.gnome.org/show_bug.cgi?id=644325 +Patch0: gnome-session-3.0.1-renderer-blacklist.patch + License: GPLv2+ Group: User Interface/Desktops @@ -80,6 +83,7 @@ Desktop file to add GNOME to display manager session menu. %prep %setup -q +%patch0 -p1 -b .blacklist echo "ACLOCAL_AMFLAGS = -I m4" >> Makefile.am @@ -158,6 +162,9 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas || : %{_datadir}/glib-2.0/schemas/org.gnome.SessionManager.gschema.xml %changelog +* Wed Apr 27 2011 Owen Taylor - 3.0.1-2 +- Add a quick-and-dirty blacklist for Radeon R100, R200, Intel 8xx + * Tue Apr 26 2011 Matthias Clasen 3.0.1-1 - Update to 3.0.1