by tdammers » Mon Feb 08, 2021 10:48 am
Two possible culprits here: single-core CPU performance, and that GPU.
Single-core CPU performance is such a big deal because parallelizing a flightsim is not an easy task, and flightgear, like most sims, will do a large portion of its work on just one thread, so that's why it only uses one core. This is pretty normal. And the reason why airlines are so much harder on the CPU is simply because they have much more complex systems: the 172 can, to a large extent, use the built-in instruments and systems, which, being written in C++, are very efficient; but an airliner requires a lot of custom work, and much of that will be written in Nasal, the scripting language built into FlightGear, and because that is an interpreted language, it will be about an order of magnitude slower.
The onboard GPU may also matter, because airliners usually have glass cockpits, while the C172 uses only analog "steam gauges". And this means that where the C172 can essentially push all textures and 3D models to the GPU once and then call it a day, an airliner needs to redraw each EFIS screen every frame, and push it to the GPU as an updated texture. A typical airliner will have about 6 main EFIS screens plus two CDU's, that's 8 dynamic textures; if each of these is 1024x1024 pixels at 32bpp, then this means we need to push 32 megabytes of texture data onto the GPU for each frame; at 30 fps, this amounts to a gigabyte per second of GPU bus bandwidth just for the EFIS screens. Most dedicated GPUs can handle this fine, but the onboard ones often can't.