|
|
|
Return to Scripting Issues
by 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.
-

coppertop
-
- Posts: 527
- Joined: Sat Apr 18, 2009 5:48 am
by 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
by 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
-
by 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.
-

coppertop
-
- Posts: 527
- Joined: Sat Apr 18, 2009 5:48 am
by 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
by coppertop » Sat Apr 28, 2012 4:48 am
Nvidia's binary.
-

coppertop
-
- Posts: 527
- Joined: Sat Apr 18, 2009 5:48 am
by 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
by 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
-

coppertop
-
- Posts: 527
- Joined: Sat Apr 18, 2009 5:48 am
by 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
-
by 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
| | |