Sun claims RENDER support even though the display might not have all depths needed.
I suggest that XRenderQueryExtension be extended to test for this so "gnome & xft
is buggy" can be redirected as "Sun's RENDER is buggy" bugs.
The relevant code is in gtk+/gdk/x11/gdkdrawable-x11.c (search for buggy) and I
will be happy to X11 license that part too. (==I wrote it.)
Can someone with Sun's putative Render extension figure out what to check and
make sure it works?
That's what I did. Here's code that seems to work:
* Sun advertises RENDER, but fails to support 32-bit pixmaps.
* That is just no good. Therefore, we check all screens
* for proper support.
for (screen = 0; screen < ScreenCount (xdisplay); screen++)
int *depths = XListDepths (xdisplay, screen, &count);
gboolean has_8 = FALSE, has_32 = FALSE;
for (i = 0; i < count; i++)
if (depths[i] == 8)
has_8 = TRUE;
else if (depths[i] == 32)
has_32 = TRUE;
if (!(has_8 && has_32))
g_warning ("The X server advertises that RENDER support is
"but fails to supply the necessary pixmap support.
"other words, it is buggy.");
x11display->have_render = GDK_NO;
Can you test with the attached patch?
Created attachment 44 [details] [review]
Check depth support before reporting Render support
I think the patch will work; synthetic testing appears to succeed.
Docs could be made to refer to Sun patch:
Keywords: X11 Xrender
4770510 RENDER should not be advertised unless required depths are supported
Since the patch appears to have survived the past 7 years in libXrender, the reporter hasn't needed to follow up, and nobody's complained, I'm closing this as FIXED.