In my previous post, I posted a screenshot of X-Plane 10.50 with the new autogen update we are working on.  This is an AG update that includes a bunch of buildings, particularly tall ones; I’ll post a lot more detail no that in a separate post.

One of the main questions in the blog comments was: “how are you getting this  pic with 30 fps? Did you get new hardware?”

Well, I did get new hardware; a few months ago I finally swapped in the first-gen 5K iMac with the R295X GPU or whatever it is. (I thought this was latest but I see now Apple has revised the machine and bumped the GPU up a generation.)  So that’s a machine with a bit more kick than my older 2008 Mac Pro.

But more importantly: X-Plane’s autogen engine is really fast. It hits the instancing path almost all of the time and as a result it can draw a lot of autogen at reasonable fps.

When X-Plane 10.0 shipped, I could run the autogen + roads maxed out my old Sandy Bridge PC – that was before optimization on hardware five years ago. I think this is one of the things that X-Plane 10 does really well that people tend not to notice; that code path was hot from day 1!

There’s a third thing going on here: I picked my rendering settings to promote AG + framerate; you can do that too. I see a lot of users running with relatively low autogen density and poor fps due to other settings. And clearly people like lots of buildings.

So here are some tips on how to get a lot of autogen and decent framerate.

  1. Make sure you haven’t overloaded VRAM. As long as everything that needs to be in VRAM, you’re done; there’s no “better”- you just need to not be overloaded. The way to do this is to turn texture res way down, tune up the system, and then at the end increase texture res until framerate suffers; then turn it down one notch. Remember to restart each time to get accurate texture use.
  2. Start with the GPU underloaded – small window, no clouds, low FSAA. You can turn those up later after you get the CPU utilized. (If the GPU is bogged down you can’t even see what you are doing.)  Note that when you do go to crank GPU settings, do this first and crank texture res last, as the high GPU settings burn “extra” VRAM for off-screen buffers.
  3. Turn down settings that chew up CPU. Considering turning off AI aircraft and turn the cars way way down. If you use a payware aircraft that eats CPU (and many of them do) you may want to keep it so you can see what your “real” performance will be; saving 10 fps by throwing out the aircraft isn’t great if you want to actually fly.
  4. Turn down settings that amplify the cost of AG. This might be the most important one; in those pics, shadows are in “overlay” and water reflections are way down.  When those settings go up, every autogen building is drawn for shadows and reflections, not just in the scene, making the AG many times more expensive.  I suggest shadows on the aircraft in 3-d and the second lowest reflection setting.

You Can’t Always Get What You Want

The other day I was forwarded a very (cough) angry customer email; the customer had a gamer-class PC, turned everything in X-Plane up to max, got about 5 fps, and went absolutely ballistic. We see emails like this over and over and over and over again. “How much @#$@# money do I have to spend to turn everything up?”

In the long term, our plan is to change the rendering settings so a high-end gamer-class PC can run with every single slider topped out; if you want some of the super high settings in some areas of the sim by turning down other areas, this will be possible only by hacking the config files, not by the UI. The current rendering settings scheme is simply not friendly to users.

With that in mind, I look at what combinations of settings we can max out in hardware (to the point where the artists intended things to be) and still have good fps. My current view is:

  • The AG system itself is there – you can have all of the AG, and assuming you don’t run out of VRAM, the artists aren’t going to create “more dense” AG, just more variety.
  • AG + shadows is still not there, and this my next goal for optimization.  My intention is to make shadows fast enough that a gamer class PC can run max shadows and max autogen at 30 fps.  We’re no there, but I believe this is possible, and I believe that it is possible using OpenGL.*
  • The cars are also not there – they’re just too big of a penalty. I certainly think we could get 2x to 3x the car density for the performance cost that the low setting cars have – and that would be a good place to be.

* Computers also just get faster over time, so I suppose I could solve this by taking a ten year sabbatical. 🙂  Seriously though, if the cars would run at playable fps at medium res, I’d be okay to let hardware improvements get us to really dense traffic.

About Ben Supnik

Ben is a software engineer who works on X-Plane; he spends most of his days drinking coffee and swearing at the computer -- sometimes at the same time.

49 comments on “The Autogen Is Really Fast

  1. Thanks Ben, can’t wait for 10.5 and the new 64 bit WED! Keep up the awesome work!

    1. It is not “10.5” it is “10.50.” A pet peeve of mine. I see this on the forums. For some reason people just feel that 10.40 is 10.4, and 10.50 is 10.5 Ugh. Folks it isn’t. 10.50 came way after 10.5 (if there was one.)

      1. Thank you Rod for your insightful observation, I am aware of the fact that it is 10.50 But in my world, 0 (ZERO) means 0, zilch, nil, nothing, nada. So please excuse my typo. Sorry that I have only been around on x plane for less than a year, I haven’t had the time to mark my chart of all the .this and .thats from the past releases. So when I see 10.50, I think of the 0 as…drum roll please…zilch, nil, nothing, nada. Have a nice day and please try the cherry cobbler, it’s fantastic!

        1. Steaven,

          So when a friend of yours tell you there are 86 400 seconds on one day. you understand it as 864?

          Sincerely,
          Time

        2. One can assume/risk that no number means zero, but I feel the same way about the letter Z.
          So please it’s not Zero, it’s 1. ero.
          This is not arithmetic it is version-ing, iteration, designation, zamboni.
          Confused?
          “I can feel your pain” — President Bill Clinton

        3. At the end it does not matter where mathematically the number scheme falls. It is what it is.

          I mean, Laminar Research has named this release X-Plane 10.50. Not X-Plane 10.5.

          1. This topic is now BANNED. If you guys want to spill more ink discussing the version numbering scheme, please do it on the org.

      2. Hello there !!

        Hum, here is my insightful observations, if Ben allows me.
        That’s totally unimportant but it’s funny to nitpick.

        I think, Ben will correct me if needed, that devs are using the scientific notation to mark there software versions. That means, using a fixed number of decimals for their version numbering.

        With that in mind, Rod : “10.50 came way after 10.5” seams not correct from my point of view. For that to be true, you should have said : 10.50 comes way after 10.05 ! And in fact, there has been an XP 10.05 if I remember…

        You could object to me that Apple does not do that at all : OS X 10.1, 10.2, …, 10.10, 10.11 and counting… But don’t forget that each 10.x are major iterations and we could as well imagine the actual XP like version 1.10.45 ! And the shinny next major one as XP 1.11.00 !

        Honestly, I know nothing about version numbering, so I could be totally wrong 😀

        And, Mrs Time, no one thinks 86 400 seconds equals 864 :
        First, there is no decimals in 86400 but yes, 864.00 seconds equals 864 seconds only if you state it. If not, the number 864 could be an approximation for 864.27 for example…
        Second, the your 864 number lacks a base unit, it could very well be 864 tomatoes you are talking about.

        That was totally useless 😀

        Have a nice day !!
        David.

        1. And… “the your” 864… that was a typo of course :p
          Let us stay precise 🙂

          Bye !
          David.

  2. have you looked in to moving the flight model off the cpu at all?

    seems like the kind of thing gpu computing could do much much faster

    1. It’s not a good fit.
      – The FM isn’t that expensive, and when it is expensive, it’s often due to interaction with the terrain. So short of moving _100%_ of the scenery engine onto the GPU, that’s a non-starter.
      – The FM is made up as much of logic and data structures as it is actual hard core computing, so having that awesome ALU power on the GPU isn’t a huge win.
      If we were doing CFD, the GPU would be a better fit, but there’s a lot of reasons why CFD isn’t a great fit for X-Plane.

      1. planemaker and airfoilmaker…they could use some CFD. 2D at least! GPGPU all the way.

      2. think your under estimating what can be done with GPGPU now
        you can do LOT of logic and moving of data the CPU and back now

          1. Well couldn’t you at least move the parts of the scenery engine that really bog down the CPU (like apparently cars) into the GPU? At least as an option checkbox for those of us who have GPU power to spare?
            It blows my mind that in 2016 my CPU (which at 8 cores and the better part of 5 GHz is no slouch) is bottlenecking _rendering_ performance.
            Meanwhile I’ve got a whole second GPU (Don’t worry, I didn’t buy that for X-Plane!) that’s just sitting idle because the engine can’t utilize it.
            I’d love to be able to run max cloud puffs, but only half my graphics power is available to the sim because the engine treats my computer like it’s still 2004.

  3. Looks awesome. Any idea if we are looking at weeks or months for 10.5 to be released?

  4. Will the new autogen buildings have lights ? Just wondering since there is a lot of residential homes with no lights.

  5. I really like buildings… and we really need some that are usable by your loyal airport designers as so many of them have asked and asked for. Here is hoping that perhaps 10.50 will prove to have some leggos that fill that bill.. But then again this is a FLIGHT simulator still without even a skitch of an improvement on ATC that can’t even merge in with the operation of the new GPS in a normal simple flight. If there is anything that X-Plane needs for its users this is first in my list!!
    Regards Bob

  6. I am opposed to the idea of introducing a hard limit on rendering settings. It would be very tough to implement in a good way – maybe someone likes INSANE buildings, but doesn´t care for car traffic? Or the other way round?
    Rendering settings are like a blanket that is too small – some part will peek out and get cold – yet some may not mind cold feet but absolutely need to have the blanket up to their ears, or the other way round…

    How about adding some other sort of user feedback once a logic determines that framerates will not always be adequate?

    Something like “Your rendering settings may not allow fluid play over built-up areas! We suggest lowering your object density/shadow/car traffic setting!”

    Make it easier for the user to see what the problem is, and prepare him for the bad experience if he chooses to ignore the warning.

    Ideally you could even display a “framerate prediction” with three areas (over rural Kansas, over Manhattan at day, over Manhattan at night). This would alleviate the need for time-consuming tuning.

    Another option could be to “autoadjust” some settings. I know you guys have been burned with the “reduce visibility to alleviate rendering load” scheme. Having a user choice with a minimum framerate slider and then dynamically cutting back on shadows, car-traffic, anti-aliasing, reflections, cloud settings might work, though. These are expensive settings where a temporary slight reduction could allow flight over Manhattan at a good framerate with slightly reduced rendering settings , and flights over rural Kansas at a good framerate with fantastic rendering settings.

    I think the most pressing need for user-feedback would be a warning that X-Plane is out of VRAM. The forums are FULL of people complaining that they only get 2-4 fps – and have no idea what VRAM is and how it pertains to X-Plane. I really can´t think of any reason to even allow the end-user running at VRAM overspill, I think X-Plane should just automatically pop back to the “rendering settings” screen with an apt warning to reduce texture settings – the royal way would be auto-adjusting texture resolution “on the fly”, of course.

    Jan

    1. This was my initial reaction as well.
      I feel as if recess has been canceled for the entire class because of one gaming punk. (I went to a perocial school)
      Hoorah to Jan.

      1. Jan & Andy, I’m sympathetic to your reaction, but I cannot emphasize enough how huge the gap is between what you guys may know about the rendering settings and what we see users doing in the field. We see users with gaming-class PCs mis-tune the settings, get 5 fps, and decide X-Plane is junk. We see it over and over, like cars driving into a brick wall because the brick wall is in the middle of the road.

        It simply isn’t scalable for us to turn 100% of our users into experts on the rendering engine. Users need to be able to get flying easily and have good results.

        Andy, if you really feel that losing the rendering settings is like having recess be canceled, then Resources/settings.txt is for you. Simply skip down below the massive rant about how you are going to blow up your computer and I will laugh at you over the flaming wreckage, and then change -any- setting in -any- way you want. If your idea of enjoying X-plane is to tweak it, _we will not stop you_! But we do need to make sure that tweaking the sim is not -mandatory-.

        Jan, we’ve discussed a bit internally about trying to have ‘smarter’ diagnostics and response on framerate. Unfortunately, a lot of the rendering engine settings get “baked” into the scenery so changing the settings requires a complete scenery reload to actually take their correct effect. Probably the more productive long term approach is to ‘balance’ the scenery as much as possible, e.g. to make sure that rural and urban areas have similar amounts of detail using similar resources, so that there isn’t an incentive to customize settings to specific parts of flight. (In real games with closed systems and an art director, this is exactly how framerate is maintained – artists will ‘tighten their belts’ in some areas and ‘add junk’ in others to keep things uniform.)

  7. Hope we get a good performance boost , I run Xplane on a laptop because currently I have no budget for a decent desktop and the laptop has a 8GB RAM and 1GB Nvidia GT525. For me the killer are the clouds / shadows / HDR so I have all three turned off. HDR usually chews up around 3-4 fps for me.

    Most of my settings are medium except water and pull around max of 25 fps depending on the aircraft / mesh / autogen etc.. it’s still flyable but not everywhere.

    Looking forward to 10.50 . And also looking forward for a new system maybe in a couple of months.

    Question for Ben :

    Who handles the Flight dynamics ? Can we have that bouncing aircraft when up in the air ? not turbulence but just during normal flights , don’t know how to explain that.

  8. absolutely wonderful news, thanks for the efforts

    please consider addressing the problem with weather settings popping up on refresh next

  9. Ben, I have a suggestion with respect to the Rendering Options screen for a future update to X-Plane:

    Firstly, it would be good to separate the CPU/GPU-intensive options instead of mixing them together as is currently done now. This would make it easier to tune those options to achieve optimum performance on any given configuration. For example, the texture settings, cloud settings, anti-aliasing, per-pixel lighting and HDR could all be grouped together rather than spread apart. On the other hand, CPU-heavy settings could be grouped together (they already appear to be, to a certain extent), but it could be better.

    Next, the viewing options, i.e. the lateral FoV setting, the Network Offset setting, etc. could be relegated to a new menu altogether, similar to how HUD/FoV settings are separated from graphics quality settings in other AAA games.

    Finally, I believe it’d be great if some of the atmospheric scattering settings and datarefs were exposed to the typical end user by default through the UI rather than having to use an add-on like Real Terra Haze. X-Plane has the potential to look extremely good with some tweaking of these settings.

    Hope to see these come through in some years (hopefully X-Plane 11), as well as other new features you’ve discussed, Ben, like physically-based rendering, a new cloud/weather system (might be common knowledge that the current 3-layer system is grossly inadequate), specular maps on aeroplanes, soft-body deformation (i.e. the fuselage of a plane actually appears to scrunch up upon impact), a new user interface, and perhaps even a shift to Vulkan by X-Plane 11. Some of these may be eye-candy, but they make X-Plane look powerful.

    I’m not into the VR hype train yet, and I’d like to see where it goes first, but X-Plane is surely here to stay.

    I look forward to these exciting things, and more, Ben 🙂

  10. How I wish that the visibility model and the throttle response-under-FADEC issues would be addressed. They’re so fundamental to both the functionality and the experience of X-Plane. Argh.

  11. Hi Ben,
    Are you going to make runway overlap look more realistic? At present when two or more runways cross it looks like they are pasted on top of one another.
    Thanks

    1. The runways would look better if the rubber skids from a bottom runway crossed a top runway; unfortunately this isn’t something we can do easily since they are part of the runway texturing process.

      Other than the rubber, the runways really -do- look pasted in real life. Look at orthophotos of KBOS on Google, for example.

  12. It’s great news!
    I knew from the day one of my x-plane life that the autogen is really fast. It seemed almost miracle, compared to old FSX’s autogen.
    But… for a way too long time since XPX’s release, we had only very few autogen assets to describe larger cities. I think it had been a lot better if larger autogens come earler, and then smaller came next.

  13. Ben, you might want to look at the fade ratio* of the autogen while finishing things up for 10.50.
    IMHO the current setting (o.5) is a very poor choice. It produces “ghost autogen ” well within your view distance. I went up to 0.9 which still gives a close to “pop-up free” experience and reduces obvious ghosting to a minimum. And I think it comes without any serious performance hit since the “ghost autogen” is rendered the same way as the solid one.

    *not sure about the name of the art control, but you will know.

  14. Ben,

    Do you think there are additional gains to be made in multicore performance? Does OpenGL pretty much restrict you to single threaded for the rendering pipeline?

    My Xeon is only 2.4 Ghz but there are like, 14 extra virtual cores dying to help. This is not a complaint. I know I should build a skylake i7 box with a 980ti. But until I can afford that, wouldn’t be sad if x-plane benefitted a little more from multicore.

    I imagine throwing cars on another core doesn’t help if that thread doesn’t know where the roads are. Is global lighting entirely gpu bound, or could shadows be computed on another cpu core?

    In the mean time I turned HDR/shadows off (sads, real terra haze is hard to do without) and cars to benefit from fast autogen

    1. We can still get some multi-core gains by moving the non-GL parts of rendering to other cores. It won’t scale as nicely as having a truly free-threaded graphics API, but it’s not 0% improvement either.

      1. Its because you said XP 10.50 runs the autogen – w2xpl does the same. No conflicts there?

        1. No, w2xpl doesn´t do the same. It uses the information of single buildings from the OpenStreetMap DataBase and places in this location either a preconfigured building from its database or generates a building from facades. Only in areas where it doesn´t get any information it can switch the X-Plane autogen on.
          So I don´t see what the problem should be, if the X-Plane autogen works differently.

  15. re ” Computers also just get faster over time, so I suppose I could solve this by taking a ten year sabbatical. ” Ben, unfortunately they are not getting faster, and I don’t think anything will change in 10 years!!
    A couple of years ago I wrote an addition for the “FSX Guide” on this subject and excerpt some of it here:

    Back in 1965 Gordon Moore, co-founder of Intel, noted that from the invention of the IC in 1958 to 1965 , the number of transistors on a chip had doubled each year. He predicted that this trend would continue for at least another decade.
    He later revised the doubling period to every two years and the prediction became known in computer circles as “Moore’s Law”. This trend has continued to this day and remarkably expected to carry on for at least another 10 years.

    Up to 2003, processor clock speed increases followed the same “Moore’s Law” trend and as an example, Maximum PC’s (May 2001) Ultimate gaming machine included the latest fastest CPU from AMD, a 1.3GHz Athlon.
    Maximum PC’s (Sept 2003) Dream machine which they described as the “best hand-built PC ever” included the latest Intel 3.2Ghz Pentium 4C.

    Here we are 10 years later and the fastest processor you can buy is 3.8Ghz!!
    As noted, “Moore’s Law” relative to transistors on ICs (read processors) still prevails, so what’s the holdup on speed?
    What’s happened was in the last 10 to 15 years we increased how much power you burned on a chip every time you had more transistors. We ran into the limit of what you can economically dissipate, about 100 watts, in about 2003,
    Clocking processors any faster would result in them melting their own circuit boards!
    Since then, rather than having very inefficient single processors on a chip, we have made a transition to multiple, much more efficient processors.
    It’s not because we had a breakthrough in programming, it’s because power limits us.
    If we want to take advantage of “Moore’s Law” , the only way we could get more performance was parallel computers (i.e. multi-core processors).
    This means we have changed the programming model, which is one of the biggest changes in the last 60 years of computing.
    But Houston, we have a problem…..
    Writing software to make effective use of multi-core processors is still extremely difficult for programmers –most of all existing software is incapable of making use of parallel computer technology unless it is re-written.
    Overclocking is the ONLY way we are going to get faster computers in the foreseeable future.
    In general, with good equipment, expect to end up around 4.5Ghz, Also remember why the manufacturers do not sell the processor rated above 4GHz, they cannot guarantee it’s life expectancy or stability above that setting. That is also presumably why they switched their marketing from locked to unlocked multipliers, the onus is on us if we want higher performance, while they maintain their market share.
    Regards
    Roy

    1. This is what I was trying to get at gently. Each years fastest i7 is about the performance of the last (sometimes lower if you take over locking into account) even if the rest of the line is slowly catching up. Unless Intel stumbles across something that lets us jump to 8-10ghz at reasonable TDP, additional cores is where it’s at.

      I have full sympathy though. You guys are jamming a ton of polygons into a scene and reality requires multiple passes. Global lights and shadows, and reflections and scattering and clouds, it’s kind of astounding any of it is going near real time.

      AMD and Nvidia still have some room to throw silicon at the problem, but we are pretty stuck at a minimum time a single core can churn through the main loop.

      I know it’s a ton to ask, but hey, if it works out there’s at least 6 years worth of 4+ core machines out there and potential people to benefit (unless jamming data over the bus is already the limiting factor?)

      (I know this is one of the hardest CS problems, so none of this is a complaint)

      1. Wait, I don’t agree with either of you; the single core performance of gamer-class CPUs is, per watt, getting better. This is a mix of smarter architecture, larger on chip control structures, etc. The growth is not nearly as large as the improvement in process density, but it’s not -nothing-. I have computers of varying ages in my office, and while the tick from a single generation isn’t huge anymore (maybe you see 10%), over a few generations, it matters. Don’t try to run X-Plane on a 2008 Mac Pro, for example. 🙂 (My previous PC, which was Sandy Bridge, had 2.5x the memory throughput.)

        Anyway, there is no question that multi-core is where the most hardware gain is available, not hoping for faster single core speed (either by clock rate or efficiency improvements). We always keep this in mind when constructing new performance sensitive code.

  16. This may be a bit off topic but I have two gripes about autogen… I think it is responsible. One is buildings, trees, and other obstacles in the glide path. A good example is at LOWI RW 26. There is a single tall building that is very unrealistic as it extends well into the TERPS limitations for obstacles in the glide path. There are many examples of tall trees right off the end of runways that obscure sight of the touchdown zone if you fly the correct glide path.

    The second is that a certain airports the runways and taxiways side to side ( roads are even worse too) follow unrealistic slopes and contours. I think XP autogen should create a reasonable apron around all runways and taxiways where gradients are limited ( side edge to side edge ) and then create a fillet to match the terrain surrounding them.

    This is an awesome sim and I really feel bad complaining about these realatively small problems. I run 3 50″ 4K monitors ( albeit at 1080p for now) with an i7 and gtx 770 and get quite good frame rates ( 45-60) if I take it easy on the clouds and don’t use HDR.

    Also… Do you know if the new improved iPad version will allow networking with the desktop version so as to display cockpit instruments or other views on the iPad as a slave computer?

    1. The mobile version of X-Plane (the flight simulator) does not network with the desktop version right now. Xavion and control pad (I think) do.

      I agree that there should not be autogen obstacles in the flight path or unrealistic contours on the runways. We already do some processing to try to prevent that, but soemtimes the algorithms are tricked by the data or have bugs. Roads with unrealistic contours is really more of a design problem: the elevation data isn’t accurate enough to reflect the real-world “grading” done locally when a road is constructed.

  17. Great news and looking forward to 10.50. What was interesting for me is that you develop with an AMD card. I just tested a 390X and the performance for X-Plane was really bad compared with a GTX970, both on Windows though and in 4K. We are speaking about a 10fps difference here. And I honestly went down to minimum rendering settings for testing.

    1. I have both an NV and an AMD card for my PC, and if I pull both I can use the Intel mobo graphics. The AMD card happens to be what’s in there right now. It gets left in there a lot because it’s what my Linux partition has drivers for. (Leaving both sets of drivers on Windows works fine, but on Linux you have to swap driver installs, which is painful.)

Comments are closed.