Trygve Laugst?l wrote:
> Hi
>
> I just LiveUpgraded to b87 was hoping to get Compiz running. I went
> through preferences -> appearance preferences -> visual effects and
> found that it couldn't enable visual effect because "Composite
> extension enabled". This was a bit surprising as I get this in the
> Xorg logs:
>
> (**) Extension "Composite" is enabled
>
>
I just tried this on a b87 system with FX 3500 and compiz worked. The only
difference is my system was a full install and yours was a LU.
Just for grins, try renaming /etc/X11/xorg.conf to disable it, restart
the desktop
and then try starting compiz.
Also, can you compile the following code and let me know the result?
$ cat compiz_query.c
/* cc compiz_query.c -I/usr/X11/include -L/usr/X11/lib -lX11 -lXrender
-lGL */
#include <stdlib.h>
#include <stdio.h>
#include <X11/Xlib.h>
#include <X11/extensions/Xrender.h>
#include <GL/gl.h>
#include <GL/glx.h>
int
main(int argc, char *argv[], char *envp[])
{
Display *dpy;
int screen;
XVisualInfo *xvi, template;
int nvi;
int i;
Visual *visual;
XRenderPictFormat *format;
int attrib[] = {
GLX_RENDER_TYPE, GLX_RGBA_BIT,
GLX_DRAWABLE_TYPE, GLX_WINDOW_BIT,
GLX_RED_SIZE, 1,
GLX_GREEN_SIZE, 1,
GLX_BLUE_SIZE, 1,
GLX_ALPHA_SIZE, 1,
GLX_DOUBLEBUFFER, True,
GLX_DEPTH_SIZE, 1,
None
};
GLXFBConfig *fbconfigs, fbconfig;
int numfbconfigs, render_event_base, render_error_base;
dpy = XOpenDisplay(NULL);
if (dpy == NULL) {
fprintf(stderr, "Failed to open display\n");
return (1);
}
screen = DefaultScreen(dpy);
/* Query for RENDER */
if (!XRenderQueryExtension(dpy, &render_event_base,
&render_error_base)) {
fprintf(stderr, "No RENDER extension found\n");
return (1);
}
/* Query GLX */
fbconfigs = glXChooseFBConfig(dpy, screen, attrib, &numfbconfigs);
if (!fbconfigs) {
fprintf(stderr, "No suitable GLX entries found\n");
return (1);
}
/*
* Find an FBConfig with a visual that has a RENDER picture format
* with alpha
*/
visual = NULL;
for (i=0; i<numfbconfigs; i++) {
xvi = glXGetVisualFromFBConfig(dpy, fbconfigs[i]);
if (!xvi) {
XFree(xvi);
continue;
}
format = XRenderFindVisualFormat(dpy, xvi->visual);
if (!format) continue;
if (format->type == PictTypeDirect && format->direct.alphaMask >
0) {
XRenderDirectFormat *direct = &format->direct;
printf("Format 0x%x\n", format);
printf( " details: red shift 0x%x, mask 0x%x\n"
" green shift 0x%x, mask 0x%x\n"
" blue shift 0x%x, mask 0x%x\n"
" alpha shift 0x%x, mask 0x%x\n",
direct->red, direct->redMask, direct->green, direct->greenMask,
direct->blue, direct->blueMask, direct->alpha, direct->alphaMask);
visual = xvi->visual;
fbconfig = fbconfigs[i];
XFree(xvi);
break;
}
}
if (visual == NULL) {
fprintf(stderr, "Failed to find suitable RENDER visual\n");
return (1);
}
printf("Found suitable RENDER visual 0x%x(%d)\n", visual->visualid,
visual->visualid);
format = XRenderFindStandardFormat(dpy, PictStandardARGB32);
printf("Format 0x%x\n", format);
return (0);
}