[Mesa-dev] How does FakeGLX work since Mesa 10?
Tom Hudson
tomhudson at google.com
Tue May 9 18:07:57 UTC 2017
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?
Tom
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20170509/442b91f7/attachment.html>
More information about the mesa-dev
mailing list