Problem glX rendering into multiple windows

A project I’m working on is having an odd problem.

We have an application that is rendering 3d with OpenGL in one window and rendering status graphs with OpenGL in two other windows. All the rendering is being done from the same thread each of the 3 windows is a C++ class that creates its own window, its own context and does a glXMakeCurrent to its context before it starts drawing.

Does this sound as if it should work?

In our setup it appears that the two real simple windows (just line graphs) are taking a lot longer to render than they really should. Almost like they are falling back to software rendering for some reason. The main 3d window seems full-speed but the other two are not.

When we replace the two GL windows with windows that just use X line drawing calls (no GL except in the one 3d window) things run much faster.

I have tried calling glXIsDirect to confirm that we are doing direct rendering in each window, and it says we are.

Any ideas on where we might be going wrong?