43 lines
2.1 KiB
Diff
43 lines
2.1 KiB
Diff
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,20 @@ _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 */
|
|
+ "R100", /* ATI Radeon R1xx */
|
|
+ "R200", /* ATI Radeon R2xx */
|
|
+ "Intel(R) 8" /* Intel 830-865 */
|
|
+ };
|
|
|
|
int attrlist[] = {
|
|
GLX_RGBA,
|
|
@@ -143,13 +157,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 */
|