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);
}


Reply via email to