Mac JOGL display rendering on wrong thread

I am using Animator (a derivitive version actually) and have a thread that is supposed to be doing the rendering. The Animator derivitive sets the rendering thread, sets no auto display mode, etc. But all the calls to my GLEventListener are occuring on the AWT event thread!!! Any ideas? I think I am on b07. Has this been fixed on newer versions? Is this some artifact of NS integration, that can be disabled? I really really do not want to have this on the event thread.

Thanks,
Michael

During development of JOGL we have come across OpenGL driver bugs on Windows and Linux platforms and bugs apparently in Apple’s JAWT implementation (though I’m not 100% sure of this) that have been solved by moving all OpenGL work onto one thread, the AWT Event Queue thread. For this reason in 1.1 b10 we changed JOGL’s default behavior to what you are seeing, which is to perform the GLEventListener’s callbacks on the AWT event queue thread. We’re trying to work with ATI and NVidia to ensure that future releases of their drivers are more robust.

In JOGL 1.1 b10 the you can disable the single-threaded behavior by specifying the system property -Djogl.1thread=false on the command line; however, I would strongly recommend against doing this. As is currently described in the JOGL user’s guide, most applications should not see a difference in behavior if the GLEventListener’s callbacks are performed on one thread or another. If you are having compatibility problems relative to earlier JOGL releases then please post here and let us know.

I have tried using that option to disable the use of the event thread to no avail. The reason I do not want all that activity on the event thread is that I want that thread to be able to respond to events and related work. I structured my app to do OGL work on the Animator thread, while doing event processing and the results of that on the event thread. On a multi-processor system this lets each thread ocupy one processor. By placing rending and event processing on the same thread it is harder to do multi-threading. If this is going to be permanent I guess I will need to toss the inputs from the event listeners onto a queue for another thread to process.

Michael