Fullscreen with Xinerama or TwinView

Return to Scripting Issues

Fullscreen with Xinerama or TwinView

Postby coppertop » Sun Mar 04, 2012 4:50 pm

I'm using two monitors with Xinerama. I was trying to enable fullscreen in Panda, but got a segmentation fault. This is the back trace from gdb:

Code: Select all
[Thread debugging using libthread_db enabled]
Xlib:  extension "RANDR" missing on display ":0.0".
Known pipe types:
  glxGraphicsPipe
(all display modules loaded.)
[New Thread 0x7fffd9ef5700 (LWP 8171)]

Program received signal SIGSEGV, Segmentation fault.
0x00007fffe6d4bcc2 in ?? () from /usr/lib/libXrandr.so.2
(gdb) bt
#0  0x00007fffe6d4bcc2 in ?? () from /usr/lib/libXrandr.so.2
#1  0x00007fffe6d4bdf8 in XRRGetScreenInfo () from /usr/lib/libXrandr.so.2
#2  0x00007fffdea69563 in x11GraphicsWindow::set_properties_now(WindowProperties&) () from /usr/lib/panda3d/libpandagl.so
#3  0x00007ffff429dc10 in GraphicsWindow::process_events() () from /usr/lib64/panda3d/libpanda.so
#4  0x00007fffdea667ab in x11GraphicsWindow::process_events() () from /usr/lib/panda3d/libpandagl.so
#5  0x00007ffff4269651 in GraphicsEngine::process_events(ov_set<PointerTo<GraphicsOutput>, IndirectLess<GraphicsOutput> > const&, Thread*) () from /usr/lib64/panda3d/libpanda.so
#6  0x00007ffff42888e2 in GraphicsEngine::WindowRenderer::do_frame(GraphicsEngine*, Thread*) () from /usr/lib64/panda3d/libpanda.so
#7  0x00007ffff42895bb in GraphicsEngine::render_frame() () from /usr/lib64/panda3d/libpanda.so
#8  0x00007ffff42d19e5 in Dtool_GraphicsEngine_render_frame_611(_object*, _object*, _object*) () from /usr/lib64/panda3d/libpanda.so
#9  0x00000000004a51ae in PyEval_EvalFrameEx ()
#10 0x00000000004a6bd1 in PyEval_EvalCodeEx ()
#11 0x0000000000535b50 in ?? ()
#12 0x000000000041c9d7 in PyObject_Call ()
#13 0x000000000042570f in ?? ()
#14 0x000000000041c9d7 in PyObject_Call ()
#15 0x00007ffff431edad in Thread::call_python_func(_object*, _object*) () from /usr/lib64/panda3d/libpanda.so
#16 0x00007ffff4338532 in PythonTask::do_python_task() () from /usr/lib64/panda3d/libpanda.so
#17 0x00007ffff43387d0 in PythonTask::do_task() () from /usr/lib64/panda3d/libpanda.so
#18 0x00007ffff433a74c in AsyncTask::unlock_and_do_task() () from /usr/lib64/panda3d/libpanda.so
#19 0x00007ffff4343c30 in AsyncTaskChain::service_one_task(AsyncTaskChain::AsyncTaskChainThread*) () from /usr/lib64/panda3d/libpanda.so
#20 0x00007ffff43446f3 in AsyncTaskChain::do_poll() () from /usr/lib64/panda3d/libpanda.so
#21 0x00007ffff4344889 in AsyncTaskManager::poll() () from /usr/lib64/panda3d/libpanda.so
#22 0x00007ffff435816d in Dtool_AsyncTaskManager_poll_121(_object*, _object*, _object*) () from /usr/lib64/panda3d/libpanda.so
#23 0x00000000004a51ae in PyEval_EvalFrameEx ()
#24 0x00000000004a5ab0 in PyEval_EvalFrameEx ()
#25 0x00000000004a6bd1 in PyEval_EvalCodeEx ()
#26 0x00000000004a4d59 in PyEval_EvalFrameEx ()
#27 0x00000000004a5ab0 in PyEval_EvalFrameEx ()
#28 0x00000000004a6bd1 in PyEval_EvalCodeEx ()
#29 0x00000000004a6ca2 in PyEval_EvalCode ()
#30 0x00000000004c702e in PyRun_FileExFlags ()
#31 0x00000000004c7244 in PyRun_SimpleFileExFlags ()
#32 0x00000000004180c1 in Py_Main ()
#33 0x00007ffff69dad8e in __libc_start_main () from /lib/libc.so.6
#34 0x00000000004172c9 in _start ()


Just to clarify, I don't want to have Panda span over two monitors. What I need is fullscreen on one screen, same as with movie players and such on xinerama.

Thanks

EDIT: I've switched to TwinView, but still can't get fullscreen. See this post in this thread: http://www.panda3d.org/forums/viewtopic ... 4558#84558
Last edited by coppertop on Wed May 02, 2012 4:34 pm, edited 1 time in total.
User avatar
coppertop
 
Posts: 527
Joined: Sat Apr 18, 2009 5:48 am

Postby drwr » Tue Apr 24, 2012 12:28 pm

I don't have any experience with Xinerama. Are you able to debug this in C++ to track it down further?

David
drwr
 
Posts: 11286
Joined: Fri Feb 13, 2004 12:42 pm
Location: Glendale, CA

Postby rdb » Wed Apr 25, 2012 8:01 am

Can you check if you have Xrandr installed?

I know that using Xinerama disables Xrandr (Xrandr is the successor to Xinerama), but it's not supposed to crash.
rdb
 
Posts: 8636
Joined: Mon Dec 04, 2006 5:58 am
Location: Netherlands

Postby coppertop » Wed Apr 25, 2012 8:14 am

Can you check if you have Xrandr installed?

I think I do. I have x11-xserver-utils installed, which contains xrandr, and I have the xrandr command. Also, if I disable Xinerama everything works fine, it's just not an option if I want to use two monitors.
User avatar
coppertop
 
Posts: 527
Joined: Sat Apr 18, 2009 5:48 am

Postby dlucio » Fri Apr 27, 2012 6:01 pm

coppertop wrote:
Can you check if you have Xrandr installed?

I think I do. I have x11-xserver-utils installed, which contains xrandr, and I have the xrandr command. Also, if I disable Xinerama everything works fine, it's just not an option if I want to use two monitors.


Which driver is installed ?
I'm only a good guy.
dlucio
 
Posts: 7
Joined: Wed Apr 20, 2005 10:18 pm
Location: Brazil

Postby coppertop » Sat Apr 28, 2012 4:48 am

Nvidia's binary.
User avatar
coppertop
 
Posts: 527
Joined: Sat Apr 18, 2009 5:48 am

Postby dlucio » Tue May 01, 2012 7:48 pm

Did you try with twinview configuration?
There are some configurations using xinerama and nvidia proprietary driver.
I'm only a good guy.
dlucio
 
Posts: 7
Joined: Wed Apr 20, 2005 10:18 pm
Location: Brazil

Postby coppertop » Wed May 02, 2012 4:22 pm

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:
Code: Select all
:display:x11display(error): BadMatch (invalid parameter attributes)


2) When I use loadPrcFileData to set fullscreen and resolution I get a bit more stuff on the terminal and everything crashes right away:
Code: Select all
: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:
Code: Select all
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
User avatar
coppertop
 
Posts: 527
Joined: Sat Apr 18, 2009 5:48 am

Postby rdb » Sun May 06, 2012 5:19 am

I think the issue is that we're calling into Xrandr functions when the extension is not enabled (since Xrandr supersedes the now-obsolete Xinerama, having Xinerama enabled disables Xrandr). This shouldn't be a problem even when the Xrandr extensions isn't enabled, but apparently, it's causing a crash in your case.

Can you try and get a traceback on the BadMatch issue, by setting "x-error-abort" to "#t" in your Config.prc, and using a debugger?
rdb
 
Posts: 8636
Joined: Mon Dec 04, 2006 5:58 am
Location: Netherlands

Postby rdb » Sun Jul 01, 2012 10:23 am

I was able to reproduce this on my FreeBSD box. I've checked in a fix for 1.8.1.
rdb
 
Posts: 8636
Joined: Mon Dec 04, 2006 5:58 am
Location: Netherlands


Return to Scripting Issues

Who is online

Users browsing this forum: No registered users and 0 guests