<div dir="ltr">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.<div><br></div><div><a href="https://cgit.freedesktop.org/mesa/mesa/commit/?id=c00b250c8061d042d9905e61b9077462ee91008b">https://cgit.freedesktop.org/mesa/mesa/commit/?id=c00b250c8061d042d9905e61b9077462ee91008b</a><br></div><div><br></div><div>In this CL, Mesa stopped maintaining a __GLXcontext for FakeGLX; there's just an XMesaContext.</div><div><br></div><div>Fake_glXGetCurrentContext() casts the XMesaContext to a __GLXContext and returns it. Perhaps the reasonable assumption is that a context is an opaque object.</div><div><br></div><div>However, glXGetCurrentDisplay() doesn't respect that assumption; it assumes it is getting a valid __GLXContext and returns __GLXContext::currentDpy, the first pointer.</div><div><br></div><div>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.</div><div><br></div><div>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?</div><div><br></div><div>Is this really a bug (which presumably I should file), or am I missing something?</div><div>Does anyone have suggestions for working around it?</div><div><br></div><div>Tom</div></div>