Fullscreen on Linux - requirements/docs/benefits?

Hi, folks. New account here, though I’ve been quietly hacking away on a JOGL app for a few months and appreciating all the tips and tricks posted here.

Can somebody point me to some requirements for fullscreen under linux? I’ve seen some code samples, and some bits and pieces on window manager hints or capabilities, but I have a feeling there’s a doc “Here’s what you need”. I read an issue from back in 2004 that was talking about VidMode extensions and the lack of Xinerama, but I’m not sure if that’s current or relevant but a bulleted list of requirements would be helpful so I could figure out where I don’t comply.

For the application I’m working on I don’t really need a window manager (on dedicated hardware), which leads me to ask: is there a benefit or difference between running an app in a full-size window without a window manager or running in real fullscreen mode under a window manager. Or running in full-screen mode without a window-manager, if that makes any sense. My app runs correctly in full-screen mode under OSX, and performance is astonishing, but running in non-full-screen mode under OSX drags performance down enough to notice. The app running on linux (on lesser hardware) is in need of a performance boost, so I’m hoping this might apply there as well. If it makes any difference, the slowness appears to be related to the amount of pixel data that needs to be painted to the screen - if I make the window small, the OpenGL stuff is speedy, though it’s dynamically resizing everything.

I’m also wondering about references I’ve seen to supported and unsupported hardware. This app is running on an embedded Via board. I’m experimenting with Via and Mesa DRI libraries and Via vs. OpenChrome drivers. DRI is functional, but isFullScreenSupported() says, “badNews.SORRY_CHARLIE”. So, I’ve seen mention that some Intel hardware is unsupported and some nVidia and ATI are, but I’m not clear what makes hardware supported - is this a device string list in the JOGL library code or specific capabilities, and if so where can I find out about those?

One more idea I’ve seen mentioned elsewhere is to forgo X11 and draw OpenGL to a framebuffer directly. I’m not sure if this is sensible or possible using JOGL, but if somebody has some knowledge here, that’ll be better than I could find on Google. :slight_smile:

Thanks for any insight.

Linux support for the AWT’s full-screen exclusive mode was added in Java SE 6. From searching around a bit it seems to be difficult to find documentation for this fact. If you’re running on 6, then in theory you should be able to access it. This should include both GraphicsDevice.isFullScreenSupported() and GraphicsDevice.isDisplayChangeSupported (if the Xrandr extension is present).

In theory it can be supported by a JSR-231 implementation but it isn’t supported by the JOGL implementation right now.