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

Michel Dänzer michel at tungstengraphics.com
Wed Apr 18 01:58:31 PDT 2007


On Tue, 2007-04-17 at 17:24 -0400, David Reveman wrote:
> On Tue, 2007-04-17 at 12:18 +0200, Michel Dänzer wrote:
> > 
> > On Fri, 2007-04-13 at 17:04 -0400, David Reveman wrote:
> > > On Fri, 2007-04-13 at 19:50 +0200, Michel Dänzer wrote:
> > > > 
> > > > 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.
> > 
> > Why is it wrong? It seems odd that it shouldn't take the context into
> > account when the context matters for whether an extension is really
> > supported, I'm inclined to consider it a bug.
> 
> A bug in the GLX spec? 

Heh, I was rather thinking in the  glXQueryExtensionsString
implementation, but perhaps the spec could be worded more clearly.

> The GLX spec mentions nothing about contexts in the description of 
> glXQueryExtensionsString or GLX extensions in general. It seems pretty 
> clear that GLX extensions are specific to the connection between the 
> client and the server and that they are not allowed to be context dependent. 

I agree that would appear to be the most plausible interpretation, but
as it doesn't explicitly say it doesn't depend on the context, and due
to the issues below...

> If this interpretation of the spec is correct, any code that relies on 
> the current context being taken into account is obviously wrong.

In particular, it would mean that it's illegal for
GLX_EXT_texture_from_pixmap (or any GLX extension, for that matter) to
be supported with indirect rendering only, wouldn't it? But if that's
legal, and  glXQueryExtensionsString is not supposed to take the context
into account, how are apps supposed to know whether it's supported? Do
you agree there's an inconsistency?

Moreover, the GL spec only mentions the connection and no contexts for
glGetString either, but it returns a different extensions string with an
indirect context (glxinfo -i). So at the very least there seems to be an
inconsistency between our current implementations of these two extension
query mechanisms.


-- 
Earthling Michel Dänzer           |          http://tungstengraphics.com
Libre software enthusiast         |          Debian, X and DRI developer



More information about the compiz mailing list