[Mesa-dev] segfault in dri2 state tracker with TFP

Dave Airlie airlied at gmail.com
Sun May 30 04:38:52 PDT 2010


On Sun, May 30, 2010 at 5:52 PM, Dave Airlie <airlied at gmail.com> wrote:
> Running texture_from_pixmap in xdemos against r300g
>
> Program received signal SIGSEGV, Segmentation fault.
> dri2_invalidate_drawable (dPriv=0x8066990) at dri2.c:57
> 57         struct dri_context *ctx = dri_context(dPriv->driContextPriv);
> Missing separate debuginfos, use: debuginfo-install
> expat-2.0.1-8.fc12.i686 glew-1.5.4-1.fc14.i686 glibc-2.11.1-6.i686
> libX11-1.3-1.fc12.i686 libXdamage-1.1.2-1.fc12.i686
> libXext-1.1-2.fc12.i686 libXfixes-4.0.4-1.fc12.i686
> libXxf86vm-1.1.0-1.fc12.i686 libdrm-2.4.21-0.1.fc14.i686
> libgcc-4.4.3-4.fc12.i686 libselinux-2.0.90-5.fc12.i686
> libstdc++-4.4.3-4.fc12.i686 libxcb-1.5-1.fc12.i686
> mesa-libGLU-7.7-4.fc12.i686
> (gdb) bt
> #0  dri2_invalidate_drawable (dPriv=0x8066990) at dri2.c:57
> #1  0xb7f9ee73 in dri2_bind_tex_image (dpy=0x804b008, drawable=75497476,
>    buffer=8414, attrib_list=0x0) at dri2_glx.c:581
> #2  0xb7f7dab6 in __glXBindTexImageEXT (dpy=0x804b008, drawable=75497476,
>    buffer=8414, attrib_list=0x0) at glxcmds.c:3098
> #3  0x0804978c in BindPixmapTexture (argc=1, argv=0xbffff304)
>    at texture_from_pixmap.c:257
> #4  main (argc=1, argv=0xbffff304) at texture_from_pixmap.c:391
>
> dPriv->driContextPriv is NULL and dri_context macro derferences it.
>
> attached patch "fixes" it but not sure if we want drI_context macro to
> catch this or whether something else is doing something wrong and
> causing this.

I've no idea what the code in dri2_invalidate_drawable is for, the
intel + nouveau legacy drivers don't seem to need this extra codepath
and just call the generic invalidate.

This patch + a patch to dri_util.c to always initialise
pdp->driContextPriv to NULL in driCreateNewDrawable works for me, but
it would be nice to know why the dri2 st cares about context in this
place.

Dave.


More information about the mesa-dev mailing list