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?