Jogl performance with different rendering methods

I created this graph from different methods, mostly in efforts to understand the problems I was having here:

I figured that they’d be generally interesting to the jogl’ers out there. Basically, I had four different methods of rendering:
Active - classic active mode rendering using just the main thread
Standard jogl - rendering as default, multi-threaded onto the event queue
Invoke later - custom implementation to use invokeLater() instead of invokeAndWait()
Worker - tell JOGL to use the worker thread

All code was executed in the exact same manner, except for how the context was made current, buffers swapped, etc. All scene preparation started from the main thread.

The results (for my Mac) show that active rendering has a pretty noticeable performance boost compared to the others. I didn’t do any statistical analysis, but my bet is that the other 3 are not statistically significant from each other. They are also much more unstable than active rendering.

Now if only we could get a stable canvas so that active rendering would work reliably (oh wait that’s in LWJGL ::)).

No it is in JOGL 2.0, there is a native window that even does not need AWT :smiley: Watch the sand box.

canvas isn’t reliable on macs? Or do you mean stable framerate or something like that?

[edit] thanks for sharing your statistics, interesting indeed

I’ve been watching it, but I don’t want to start using that code until it’s made official.

Sorry, I meant that the canvas isn’t reliable on Mac when using active rendering. If you look at the post I mentioned above, I a screenshot of the problem.