Re: GLX Pixmap destroy issue
Thank you very much for your detailed response.
I appreciate the suggestion to use FBOs -- I started down that path originally. Unfortunately, I need true process separation (threads aren't enough).
I have long-running "application" processes that need to be fully independent, each of which renders output to one or more textures. These textures are then drawn to the screen by yet another process. I'm doing more or less what a window manager does (but with a lot of fancy GL in both the app and window-manager processes), but using as little X infrastructure as possible. (All of this is in the context of high-end, multi-machine simulation and visualization frameworks. We move a lot of pixels around, try for high framerates, and grovel through a lot of data every frame. We also have to build everything in very defined, modular ways -- hence the "apps and window manager" architecture.)
I did also try sharing GLX Pixmaps across processes, but passing the GLX Pixmap XID from one process into glXMakeCurrent() in another gave me a Bad Drawable error. I could well have done something else wrong, though, so I'll try again.
Again, thank you for your advice. Your help is much appreciated. I must admit that I'm a little surprised that sharing GL resources across processes is so difficult <laugh>. I'm relatively new to PC graphics programming (I come from a big-systems development background), and it's very tempting to design multi-process/distributed systems that take advantage of the really impressive power in the new generation of graphics cards.