New DRI interface changes landed

Vincent Vanackere vincent.vanackere at gmail.com
Sat Oct 13 10:44:28 PDT 2007


2007/10/13, Kristian Høgsberg <krh at bitplanet.net>:
> Hi,
>
> I've committed the new DRI interface that will enable GLX 1.4 and
> redirected rendering.  The interface is not backwards compatible, so
> the git X server will not be able to load older DRI drivers for AIGLX
> and the DRI drivers from Mesa git wont work with older X servers.  So
> to get AIGLX running, get and install git mesa, the compile the X
> server against that.
>
> Furthermore, the X server now needs the 1.4.9 version of glproto,
> since I added support for GLX_SGIX_pbuffer.  I only tagged 1.4.9 in
> git, but didn't do tarballs or send out a release yet.  Will do that
> as soon as possible.

Hi,

I built everything from git after your changes, and I now have a crash
in the xserver when launching compiz.
Configuration :
- Intel G33 chipset using the driver from git
(e04333a6352040bc883655d606923c912d005981)
- git mesa f9c6dfc4d12451c21f39f38b048758cbee5723cf + patch from
http://bugs.freedesktop.org/show_bug.cgi?id=9264 (to run compiz)
- xserver : 927757e1028f45f7fd94b9a2ab35567e0f34b2a8

Backtrace of the crash when launching compiz :

----------------------------------------------------------------------
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 47580776315008 (LWP 6095)]
glxFillAlphaChannel (pixmap=<value optimized out>, x=<value optimized out>,
    y=0, width=<value optimized out>, height=<value optimized out>)
    at ../../../GL/glx/glxdri.c:318
318               *p++ |= 0xFF000000;
(gdb) bt
#0  glxFillAlphaChannel (pixmap=<value optimized out>,
    x=<value optimized out>, y=0, width=<value optimized out>,
    height=<value optimized out>) at ../../../GL/glx/glxdri.c:318
#1  0x00002b46438c153c in __glXDRIbindTexImage (
    baseContext=<value optimized out>, buffer=<value optimized out>,
    glxPixmap=0x13b5120) at ../../../GL/glx/glxdri.c:435
#2  0x00002b464388f5bc in __glXDisp_BindTexImageEXT (cl=<value optimized out>,
    pc=<value optimized out>) at ../../../GL/glx/glxcmds.c:1594
#3  0x00002b464388e722 in __glXDisp_VendorPrivate (cl=0x13de848,
    pc=<value optimized out>) at ../../../GL/glx/glxcmds.c:2316
#4  0x00002b4643892692 in __glXDispatch (client=0x13de690)
    at ../../../GL/glx/glxext.c:506
#5  0x000000000044d0f0 in Dispatch () at ../../dix/dispatch.c:502
#6  0x0000000000435955 in main (argc=10, argv=0x7fff69a196c8,
    envp=<value optimized out>) at ../../dix/main.c:452
(gdb) bt full
#0  glxFillAlphaChannel (pixmap=<value optimized out>,
    x=<value optimized out>, y=0, width=<value optimized out>,
    height=<value optimized out>) at ../../../GL/glx/glxdri.c:318
        p = (CARD32 *) 0x0
        end = (CARD32 *) 0x1e00
        pixels = (CARD32 *) 0x0
#1  0x00002b46438c153c in __glXDRIbindTexImage (
    baseContext=<value optimized out>, buffer=<value optimized out>,
    glxPixmap=0x13b5120) at ../../../GL/glx/glxdri.c:435
        numRects = <value optimized out>
        p = <value optimized out>
        pRegion = (RegionPtr) 0x0
        pixmap = (PixmapPtr) 0x19a1ae0
        bpp = 4
        override = 0
        texname = 12
        format = 32993
        type = 5121
        pScreen = <value optimized out>
        __func__ = "__glXDRIbindTexImage"
#2  0x00002b464388f5bc in __glXDisp_BindTexImageEXT (cl=<value optimized out>,
    pc=<value optimized out>) at ../../../GL/glx/glxcmds.c:1594
        client = (ClientPtr) 0x13de690
        context = (__GLXcontext *) 0xa529a0
        pGlxDraw = (__GLXdrawable *) 0x0
        drawId = 46137754
        error = <value optimized out>
#3  0x00002b464388e722 in __glXDisp_VendorPrivate (cl=0x13de848,
    pc=<value optimized out>) at ../../../GL/glx/glxcmds.c:2316
        req = (xGLXVendorPrivateReq *) 0x26ef384
        proc = (__GLXdispatchVendorPrivProcPtr) 0
#4  0x00002b4643892692 in __glXDispatch (client=0x13de690)
    at ../../../GL/glx/glxext.c:506
        stuff = (xGLXSingleReq *) 0x26ef384
        opcode = <value optimized out>
        proc = (
    __GLXdispatchSingleProcPtr) 0x2b464388e6f0 <__glXDisp_VendorPrivate>
        cl = (__GLXclientState *) 0x13de848
        retval = 1
#5  0x000000000044d0f0 in Dispatch () at ../../dix/dispatch.c:502
        clientReady = <value optimized out>
        result = <value optimized out>
        client = <value optimized out>
        nready = 0
        start_tick = 31860
#6  0x0000000000435955 in main (argc=10, argv=0x7fff69a196c8,
    envp=<value optimized out>) at ../../dix/main.c:452
        pScreen = <value optimized out>
        i = 1
        error = 0
        xauthfile = <value optimized out>
        alwaysCheckForInput = {0, 1}
----------------------------------------------------------------------

I can provide more information if necessary,

Vincent


More information about the xorg mailing list