Is there an easier way to get 2 monitor outputs updating at 60fps?
I’m trying to work with an NVIS111 HMD which is connected to a dual head graphics card generating separate left and right outputs.
I’m using JOGL with 2 full-screen windows (both a combination of Frame and GLCanvas). Other details: Windows XP, quad core processor, NVIDIA Quadro FX 4800 graphics card.
The problem I have with the typical JOGL use, is that buffer swapping is not synchronized meaning that the left and right images update alternately at 30fps rather than the 60fps desired. Note that the rendered scene is simple enough to render much faster.
So far I have two possible solutions:
- Disable double buffering using GLCapabilities — I don’t really want to do this due to risk of unpleasant artefacts.
- Using Threading.disableSingleThreading(); and then using active rendering directly from two different worker threads (not using GlEventListener) — The API documentation discourages this approach and I’m not sure this is a very safe. I did have a couple of crashes until I specified -Dsun.java2d.noddraw=true