Board index FlightGear Support Hardware

Crash with multi-camera configuration  Topic is solved

Joysticks, pedals, monitors.

Crash with multi-camera configuration

Postby alfmel » Wed Apr 05, 2017 10:45 pm

I'm new to FlightGear and I am having troubles with my multi-monitor setup.

System info: I am running on Linux. My distro is Arch Linux and I am using the official Arch Linux packages. My FlightGear version is 2017.1.1. I have an Nvidia GT 740 with 3 monitors connected and I am using the latest Nvidia driver.

I want a simple 3-monitor setup, with the middle monitor looking forward, and my side monitors providing side views from inside the cockpit. From the many different forum topics, I've been able to come up with the following XML preference file:

Code: Select all
<?xml version="1.0"?>
<PropertyList>
    <sim>
        <rendering>
            <!-- <multithreading-mode>AutomaticSelection</multithreading-mode> -->
            <camera-group>
                <window>
                    <name type="string">Front</name>
                    <display>0</display>
                    <screen>0</screen>
                    <fullscreen type="bool">false</fullscreen>
                    <decoration type="bool">true</decoration>
                    <x>0</x>
                    <y>0</y>
                    <width>1920</width>
                    <height>1080</height>
                </window>

                <window>
                    <name type="string">Left</name>
                    <display>0</display>
                    <screen>0</screen>
                    <fullscreen type="bool">false</fullscreen>
                    <decoration type="bool">true</decoration>
                    <x>0</x>
                    <y>0</y>
                    <width>1280</width>
                    <height>1024</height>
                </window>

                <window>
                    <name type="string">Right</name>
                    <display>0</display>
                    <screen>0</screen>
                    <fullscreen type="bool">false</fullscreen>
                    <decoration type="bool">true</decoration>
                    <x>0</x>
                    <y>0</y>
                    <width>1280</width>
                    <height>1024</height>
                </window>

                <camera>
                    <name type="string">Front</name>
                    <window>
                        <name>Front</name>
                    </window>
                   
                    <view>
                        <heading-deg type="double">0.0</heading-deg>
                        <roll-deg type="double">0.0</roll-deg>
                        <pitch-deg type="double">0.0</pitch-deg>
                    </view>

                    <master-perspective>
                        <eye-distance type="double">0.7</eye-distance>
                        <x-offset type="double">0.05</x-offset>
                        <y-offset type="double">0.10</y-offset>
                    </master-perspective>

                    <viewport>
                        <x>0</x>
                        <y>0</y>
                        <width>1920</width>
                        <height>1080</height>
                    </viewport>
                   
                    <physical-dimensions>
                        <width>0.509</width>
                        <height>0.286</height>
                        <bezel>
                                <top>0.01</top>
                                <bottom>0.01</bottom>
                                <left>0.01</left>
                                <right>0.01</right>
                        </bezel>
                    </physical-dimensions>
                </camera>

                <camera>
                    <name type="string">Left</name>
                    <window>
                        <name>Left</name>
                    </window>

                    <view>
                        <heading-deg type="double">40.0</heading-deg>
                        <roll-deg type="double">0.0</roll-deg>
                        <pitch-deg type="double">0.0</pitch-deg>
                    </view>

                    <left-of-perspective>
                            <parent-camera>Front</parent-camera>
                    </left-of-perspective>

                    <viewport>
                        <x>0</x>
                        <y>0</y>
                        <width>1280</width>
                        <height>1024</height>
                    </viewport>
                   
                    <physical-dimensions>
                            <width>0.338</width>
                            <height>0.270</height>
                            <bezel>
                                <top>0.015</top>
                                <bottom>0.015</bottom>
                                <left>0.015</left>
                                <right>0.015</right>
                            </bezel>
                    </physical-dimensions>
                </camera>

                <camera>
                    <name type="string">Right</name>
                    <window>
                        <name>Right</name>
                    </window>
                   
                    <view>
                        <heading-deg type="double">320.0</heading-deg>
                        <roll-deg type="double">0.0</roll-deg>
                        <pitch-deg type="double">0.0</pitch-deg>
                    </view>

                    <right-of-perspective>
                            <parent-camera>Front</parent-camera>
                    </right-of-perspective>

                    <viewport>
                        <x>0</x>
                        <y>0</y>
                        <width>1280</width>
                        <height>1024</height>
                    </viewport>
                   
                    <physical-dimensions>
                            <width>0.338</width>
                            <height>0.270</height>
                            <bezel>
                                <top>0.015</top>
                                <bottom>0.015</bottom>
                                <left>0.015</left>
                                <right>0.015</right>
                            </bezel>
                    </physical-dimensions>
                </camera>

            </camera-group>
        </rendering>
    </sim>
</PropertyList>


I then start FlightGear with the following command:

Code: Select all
fgfs --config=.fgfs/preferences.xml --timeofday=noon


All 3 windows get created and all 3 show the splash screen. However, after a couple of seconds FlightGear crashes with the following information:

Code: Select all
Creating Subsystems
========== ==========
Reading materials from /usr/share/flightgear/data/Materials/regions/materials.xml
Successfully synchronized directory 'Models'
sync of http://mpserver16.flightgear.org/scenery/Airports/L started, queue size is 25
Reading systems from Path "/usr/share/flightgear/data/Aircraft/c172p/Systems/systems.xml"
Initializing HUD Instrument
Reading sound sound from Path "/usr/share/flightgear/data/Aircraft/c172p/c172-sound.xml"
Creating subsystems took:1699
Splash screen progress binding-subsystems
Binding subsystems took:1
Splash screen progress init-subsystems
Reading localized strings for 'en' from Path "/usr/share/flightgear/data/Translations/en/menu.xml"
dialog Path "/usr/share/flightgear/data/Aircraft/c172p/gui/dialogs/c172p-menu.xml" has no name; skipping.
FATAL: puGetWindow: Callbacks not initialized.
Error: caught signal 11:
  /usr/lib/libc.so.6 : ()+0x33a90
  /usr/lib/libpthread.so.0 : pthread_mutex_lock()+0x5f
  /usr/lib/libosg.so.130 : osg::Texture::TextureObjectSet::orphan(osg::Texture::TextureObject*)+0x1f
  /usr/lib/libosg.so.130 : osg::Texture::releaseGLObjects(osg::State*) const+0x5e
  /usr/lib/libosg.so.130 : osg::StateSet::releaseGLObjects(osg::State*) const+0x90
  /usr/lib/libosg.so.130 : osg::Drawable::releaseGLObjects(osg::State*) const+0x33
  /usr/lib/libosg.so.130 : osg::Geometry::releaseGLObjects(osg::State*) const+0x25
  /usr/lib/libosg.so.130 : osg::Group::releaseGLObjects(osg::State*) const+0x33
  /usr/lib/libosg.so.130 : osg::Group::releaseGLObjects(osg::State*) const+0x33
  /usr/lib/libosg.so.130 : osg::Group::releaseGLObjects(osg::State*) const+0x33
  /usr/lib/libosg.so.130 : osg::Group::releaseGLObjects(osg::State*) const+0x33
  /usr/lib/libosg.so.130 : osg::Group::releaseGLObjects(osg::State*) const+0x33
  /usr/lib/libosg.so.130 : osg::GraphicsContext::removeCamera(osg::Camera*)+0x1b5
  /usr/lib/libosg.so.130 : osg::Camera::~Camera()+0x3a
  /usr/lib/libosg.so.130 : osg::Camera::~Camera()+0x9
  fgfs : std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, flightgear::RenderStageInfo>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, flightgear::RenderStageInfo> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, flightgear::RenderStageInfo> > >::_M_erase(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, flightgear::RenderStageInfo> >*)+0x64
  fgfs : flightgear::CameraInfo::~CameraInfo()+0x155
  fgfs : flightgear::CameraInfo::~CameraInfo()+0x9
  fgfs : flightgear::CameraGroup::~CameraGroup()+0xde
  fgfs : flightgear::CameraGroup::~CameraGroup()+0x9
  fgfs : fgOSCloseWindow()+0x47
  fgfs : fgExitCleanup()+0x22f
  /usr/lib/libc.so.6 : ()+0x366c0
  /usr/lib/libc.so.6 : ()+0x3671a
  fgfs : ulSetError(ulSeverity, char const*, ...)+0x121
  fgfs : puGetWindow()+0x25
  fgfs : puObject::puObject(int, int, int, int)+0x19d
  fgfs : FGPUIMenuBar::make_menubar(SGPropertyNode*)+0x43
  fgfs : FGPUIMenuBar::init()+0x1a
  fgfs : NewGUI::init()+0x1f5
  fgfs : SGSubsystem::incrementalInit()+0xa
  fgfs : SGSubsystemGroup::incrementalInit()+0x78
  fgfs : SGSubsystemMgr::incrementalInit()+0x22
  fgfs() [0x772f88]
  fgfs : fgOSMainLoop()+0x48
  fgfs : fgMainInit(int, char**)+0xcee
  fgfs : main()+0x150
  /usr/lib/libc.so.6 : __libc_start_main()+0xf1
  fgfs : _start()+0x2a
fgfs: /build/simgear/src/simgear-2017.1.1/simgear/threads/SGThread.cxx:256: void SGMutex::PrivateData::lock(): Assertion `err == 0' failed.
Aborted (core dumped)


If I don't specify my custom preferences XML file, FlightGear starts without any problems and works fine. If I comment out all my camera-group, FlightGear also starts fine.

Any ideas of why FlightGear is crashing?
alfmel
 
Posts: 2
Joined: Wed Apr 05, 2017 10:15 pm

Re: Crash with multi-camera configuration

Postby wkitty42 » Thu Apr 06, 2017 2:49 am

see that line that starts "FATAL:"? i would guess that it is related to the problem specified in the line above it... that may be related to something in your camera group stuff... that's my eWAG for the day... sorry i can't provide more info but i looked over your xml and nothing obvious jumped out at me... hopefully someone else with more knowledge of the camera stuff will be along and see the error in your xml...
"You get more air close to the ground," said Angalo. "I read that in a book. You get lots of air low down, and not much when you go up."
"Why not?" said Gurder.
"Dunno. It's frightened of heights, I guess."
User avatar
wkitty42
 
Posts: 9148
Joined: Fri Feb 20, 2015 4:46 pm
Location: central NC, USA
Callsign: wk42
Version: git next
OS: Kubuntu 20.04

Re: Crash with multi-camera configuration  

Postby Torsten » Fri Apr 07, 2017 11:58 am

The gui definition is missing in your config file. Adding something like this should help:

Code: Select all
       [.. some window definition..]
        </window>
        <gui>
          <window>
            <name type="string">Left</name>
          </window>
        </gui>


Torsten
flightgear.org - where development happens.
User avatar
Torsten
 
Posts: 648
Joined: Fri Feb 01, 2008 10:22 pm
Location: near Hamburg, Germany
Callsign: offline
Version: next
OS: Linux

Re: Crash with multi-camera configuration

Postby alfmel » Sat Apr 08, 2017 2:57 pm

Yep, that did it Torsten. In retrospect, that makes sense. It couldn't create the menu because it couldn't find the window to draw it in.
alfmel
 
Posts: 2
Joined: Wed Apr 05, 2017 10:15 pm


Return to Hardware

Who is online

Users browsing this forum: No registered users and 5 guests