Login  Register

Re: GLWindow

Posted by Daniel Avila on Feb 04, 2013; 6:00pm
URL: https://forum.jogamp.org/GLWindow-tp4027817p4028131.html

I'm having the same issues with the autobuild. Maybe I'm approaching this from the wrong angle.

Take a look at this test case, which demonstrates the fundamental limitation I'm running into. WARNING : this test causes significant flickering in the screen, and my hurt your eyes. All the test does is repeatedly clear the viewing surface with a black and white background, which should be a trivial operation.

It is not entirely clear what else is gained when entering Fullscreen, but at the very least we are able to sync with the monitor's refresh rate. Unless there is a way to vsync in windowed view, you will see skipping in the animation regardless of GL work being done and the FPS you can achieve.

I've noticed that the more powerful your graphics card is, the less obvious this problem is. We tested with a GTX 690 using its parallel performance mode, and still had the skipping problem which we identified using an oscilloscope. And it is not just JOGL ... AWT/SWING, LWJGL, and even D3D had the same problem.

Now, it is my understanding that JOGL uses WGL and GDI as the native Windows implementation. After reading this article on MSDN, it sounds like what I'm trying to do is simply not possible.

The newer graphics architecture, DXGI, does support multiple fullscreen swap chains. However, I doubt any of us have the time to implement JOGL on DXGI. It might be worth putting on the roadmap though, and I would be interested in working on this in the future.

I don't think it would be easy to port to D3D, since none of us have worked with the architecture and I doubt there are bindings for it in Java that are as intuitive as JOGL. Not to mention that kills our portability in the future.

As an interim solution, I have the ability to span exactly 3 monitors with the GTX 690 (I haven't tested it yet though), which means I could probably get away with a single canvas. It's not an ideal situation, but it should work.

If you guys have any other suggestions or routes I could explore, please feel free to post them here.