Fullscreen with Xinerama or TwinView

I’ve tried TwinView, now that I’ve upgraded to Ubuntu 12.04. Now it’s different, but hard to say if better.

The game starts and runs, but I have no display. Just a quick flash of a black window. At the middle of two screens, indicating that even if it did work, it would’t be the right kind of full screen to me (in some cases it might be desirable, tho). I’m looking for the same thing that happens to a video played in Totem when fullscreen is enabled – namely fill one whole monitor.

But anyway, back to the problems. There are three cases:

  1. When I use WindowProperties to set fullscreen and resolution, I can see on the terminal that the game is running and receiving input. Even relative mouse mode works AFAICT. I can also see a Panda button on the gnome panel’s window list. However, there’s no visible output – I can see my desktop as usual, there’s not even a black screen.

Here’s what happens on the terminal:

:display:x11display(error): BadMatch (invalid parameter attributes)
  1. When I use loadPrcFileData to set fullscreen and resolution I get a bit more stuff on the terminal and everything crashes right away:
:display:x11display(error): Videocard has no supported display resolutions at specified res (1920 x 1080)
:display:x11display(error): Videocard has no supported display resolutions at specified res (1920 x 1080)
:display:x11display(error): BadMatch (invalid parameter attributes)
:display:x11display(error): BadMatch (invalid parameter attributes)
:ShowBase(warning): Unable to open 'onscreen' window.
Traceback (most recent call last):
  File "startGame.py", line 80, in <module>
    m = main()
  File "startGame.py", line 23, in __init__
    self.copperPanda.startShowBase(True, 120)
  File "/home/coppertop/Development/gamedev/copperLibs/pandaInit.py", line 11, in startShowBase
    ShowBase()
  File "/usr/share/panda3d/direct/showbase/ShowBase.py", line 244, in __init__
    self.openDefaultWindow(startDirect = False, props=props)
  File "/usr/share/panda3d/direct/showbase/ShowBase.py", line 884, in openDefaultWindow
    self.openMainWindow(*args, **kw)
  File "/usr/share/panda3d/direct/showbase/ShowBase.py", line 920, in openMainWindow
    self.openWindow(*args, **kw)
  File "/usr/share/panda3d/direct/showbase/ShowBase.py", line 675, in openWindow
    raise StandardError, 'Could not open window.'
StandardError: Could not open window.

When I use loadPrcFileData to set the resolution, and then enable fullscreen with WindowProperties I get a black fullscreen flash and then it crashes with the following:

Assertion failed: has_size() at line 142 of built/include/windowProperties.I
:display:x11display(error): Videocard has no supported display resolutions at specified res (1920 x 1032)
Traceback (most recent call last):
  File "/usr/share/panda3d/direct/showbase/ShowBase.py", line 1844, in __igLoop
    self.graphicsEngine.renderFrame()
AssertionError: has_size() at line 142 of built/include/windowProperties.I
:task(error): Exception occurred in PythonTask igLoop
Traceback (most recent call last):
  File "startGame.py", line 81, in <module>
    run()
  File "/usr/share/panda3d/direct/showbase/ShowBase.py", line 2910, in run
    self.taskMgr.run()
  File "/usr/share/panda3d/direct/task/Task.py", line 502, in run
    self.step()
  File "/usr/share/panda3d/direct/task/Task.py", line 460, in step
    self.mgr.poll()
  File "/usr/share/panda3d/direct/showbase/ShowBase.py", line 1844, in __igLoop
    self.graphicsEngine.renderFrame()
AssertionError: has_size() at line 142 of built/include/windowProperties.I

I use 1920x1080 resolution, as that’s native for the monitor. Tried setting it to the whole twinview, being 3200x1080, but that resulted in the same behavior and error message.

My current setup is:

Ubuntu 12.04
Gnome Fallback Session, no Compiz
Panda 1.8.0 (ubuntu 11.10 build)
GeForce GTX460
nvidia binary drivers
TwinView
Monitors: 1920x1080 and 1280x1024