[Mesa-dev] How does FakeGLX work since Mesa 10?

Brian Paul brianp at vmware.com
Mon May 22 17:55:19 UTC 2017


On 05/09/2017 12:07 PM, Tom Hudson wrote:
> I'm trying to upgrade a Mesa 10 installation to Mesa 17. There have been
> plenty of changes, but only one breakage that's left me perplexed.
>
> https://cgit.freedesktop.org/mesa/mesa/commit/?id=c00b250c8061d042d9905e61b9077462ee91008b
>
> In this CL, Mesa stopped maintaining a __GLXcontext for FakeGLX; there's
> just an XMesaContext.
>
> Fake_glXGetCurrentContext() casts the XMesaContext to a __GLXContext and
> returns it. Perhaps the reasonable assumption is that a context is an
> opaque object.
>
> However, glXGetCurrentDisplay() doesn't respect that assumption; it
> assumes it is getting a valid __GLXContext and returns
> __GLXContext::currentDpy, the first pointer.
>
> The first pointer in an XMesaContext is *not* a pointer to a Display,
> and so any code that relies on this code path seems doomed to
> disappointment.
>
> This is hitting us in open-source projects based on Ogre, but seems like
> a breakage in the public API that other users would have run into in the
> 3 years since that commit?
>
> Is this really a bug (which presumably I should file), or am I missing
> something?
> Does anyone have suggestions for working around it?

Hi Tom,

I just updated the bug report with a proposed patch.

Sorry for the breakage.  I think it happened a long time ago and it 
looks like you're the first to notice.

-Brian




More information about the mesa-dev mailing list