[Mesa3d-dev] [compiz] The direct/indirect rendering stuff and compiz

David Reveman davidr at novell.com
Fri Apr 13 14:04:25 PDT 2007


On Fri, 2007-04-13 at 19:50 +0200, Michel Dänzer wrote:
> On Fri, 2007-04-13 at 13:32 -0400, David Reveman wrote:
> > 
> > Does anyone know if some code similar to this would work?
> > 
> > glxExtensions = glXQueryExtensionsString (dpy, screenNum);
> > if (!strstr (glxExtensions, "GLX_EXT_texture_from_pixmap"))
> > {
> >     setenv ("LIBGL_ALWAYS_INDIRECT", "1", 1);
> >     glxExtensions = glXQueryExtensionsString (dpy, screenNum);
> >     if (!strstr (glxExtensions, "GLX_EXT_texture_from_pixmap"))
> >         indirectRendering = TRUE
> > }
> > 
> > We know pretty well what the problem is and what needs to be done to fix
> > it so I would be OK with including a workaround like this in head if
> > people insist that they want it there.
> 
> I'm afraid it may not work because  LIBGL_ALWAYS_INDIRECT is only
> checked in __glXInitialize().
> 
> I wonder why I didn't get any feedback on my proposal: Make
> glXQueryExtensionsString take the current context into account when
> appropriate. Would it be feasible for compiz to make the context current
> before calling glXQueryExtensionsString?

That's actually what compiz is doing now as I thought that
glXQueryExtensionsString took the current context into account. However,
as this is wrong I'd prefer to remove it.

How about putting something like the attached workaround in mesa? It's
checking if the client is the window manager for any screen and avoids
using direct rendering if that's the case. It would be more better to
check if the client is the compositing manager but I couldn't think of a
way to check that without creating a top-level window and that seemed a
bit too nasty here.

- David
-------------- next part --------------
A non-text attachment was scrubbed...
Name: mesa-always-indirect-wm.diff
Type: text/x-patch
Size: 1045 bytes
Desc: not available
Url : http://lists.freedesktop.org/archives/compiz/attachments/20070413/2816c58b/mesa-always-indirect-wm.bin


More information about the compiz mailing list