We have my own java binding to MESA3D and we use JOGL as well. To make both of them work in the same application with minimum extra classes I implement GL interface from JOGL for our MESA binding and there is also another implementation in JOGL jar file. So everything works ok on Windows platfrom. On linux 32 bit I had to load our shared libs way ahead of the first call to JOGL getFactory which starts loading JOGL shared libs and this did the trick and it worked for our MESA binding. But on 64-bit Linux nothing works when I have jOGL and our MESA together. If I do not have JOGL everything works nicely if do bring it in my first call to any GL pipeline function crashes JVM. After reading and going through the JOGL source code i found that there is a DRIHack in JOGL that loads GL libs with the RTLD_GLOBAL flag and my guess is that is why everything is being intercepted by JOGL's libs although it is an instance of our GL implementation. Or maybe something else is going on. Does anybody have idesa on how I can force them to live together in peace under the same roof.
Why not disabling hardware acceleration so that JOGL will use MESA? I used MESA and JOGL in 2006, it worked... For example, on Windows Vista, recently, on some machines JOGL works with an emulated version of OpenGL with Microsoft GDI.