Author: Chris Serio

Tips for better frame rates Pt #1

Austin, Ben and I are still working on cleaning out the remainder of Ultra-High priority bugs right now which essentially consist of crashes or other things that impact large groups of people. Only once these types of problems are taken care of will we be able to start looking into figuring out what can be optimized in the sim.

Many of you are getting really decent performance. Many of you are getting “ok” performance and others are getting really poor performance. This is not a surprise because there is a huge spectrum of hardware out there. Moving forward, we have some tools at our disposal that we can use to collect some data see what’s impacting performance the most. Then we can optimize it. Then we can see what the second biggest problem is, and then optimize that….and around and around we go.

In my opinion, one major contributor to performance loss right now is having your settings wrong. X-Plane allows you to configure a LOT of settings to get optimal performance. We’ve given you more than enough rope to hang yourself with, and many of you are doing just that. X-Plane’s rendering engine is very flexible. It has to be because it has to run on a huge spectrum of hardware. Like any large system, it needs to be tuned properly for its intended use. Ben’s already told you that you need to hit rock bottom to tune X-Plane properly. What that means is that you need a baseline. Think of how you tune a guitar or any instrument for that matter. You need a reference pitch such as a tuning fork. You match one string up perfectly to that pitch and then you adjust ONE string at a time until it’s in tune with the previous string. Imagine trying to tune a guitar without a reference pitch. You would have no idea whether you were making progress or not!

The “tuning fork” of X-Plane is starting from zero. This is your reference. Turn off EVERYTHING. Turn of AI aircraft, set your clouds to clear, set your visibility to something reasonable like 20-30SM, turn off rain and storms. Go to your Rendering Options and set EVERYTHING as low as it will go. If you run X-Plane in fullscreen mode, turn down your resolution. If you run X-Plane as a window, reduce the size of the window. The item that says “Framerate-lock to monitor” should be set to “Do Not Lock” (more on this in a moment). Take a look at what kind of framerate you get in the sim. Don’t just sit on the runway, fly around, take note of the range that you see. Also, see what you’re system’s doing as well as you can. Take a note of CPU usage, Memory Usage (mainly how much is left to be used), and GPU usage if you have a fancy driver that lets you see this information. At this point, you should have a rough guess as to what your weakest link is. If your CPU is almost maxed out right now, it’s going to be your limiting piece of hardware. If your almost out of memory, that will be your limit etc.

(A quick detour on CPU cores…more is better-ish…to a point. 9 women can get together and do 9 different tasks in 1/9th of the amount of time it would take 1 woman, but 9 women cannot have a baby in 1 month! The point is, if X-Plane has multiple tasks going on (like AI traffic, scenery pre-loading etc), then multiple cores helps get the tasks done quicker. But if there’s only one task going on (like rendering), your other cores will NOT help you do it any faster.)

Back to tuning…Start with Rendering Options. Now start turning things up ONE setting at a time. Start with things that are most important to you. Each time you change something, go back to the sim and see how it impacted you. Take note of your hardware utilization again. Has CPU changed much? Has memory changed much? Don’t be fooled by large jumps in FPS. Remember, going from 100fps to 90fps is a difference of 10fps (“wow” you’re thinking)…but that’s only 10%! That same 10% reduction at 20fps would bring you down to 18fps. You should care about the PERCENTAGE change, not the FPS change. If you notice that one setting in particular causes your framerate to lose a huge percentage, then you’ve probably figured out what the weakest part of your particular hardware is. This is the setting that you’ll either have to live without or the one you’ll have to be VERY careful about touching. If this setting is important to you, perhaps there is something else that you can sacrifice to get some performance back for this setting. Or if you’re able to upgrade your hardware, that’s the thing that you should invest in.

At some point, hopefully you’ve found yourself with a configuration that you like. Again, note your average FPS in various situations. NOW you can go back and set the weather how you like it. Turn the clouds up, turn the visibility up if you want but be careful. Visibility can be a huge factor in performance. The farther you can see, the more things the system has to draw. I would not recommend going over 50SM unless you find yourself with a ton of performance left over. Now you can turn on the number of AI planes that you like flying around with. You may have to go back and retune some things to get the system balanced with the new weather and AI. Make SMALL incremental changes. You don’t want to de-tune it severely. When everything’s balanced, now go back into Rendering Options and note at the very bottom, it will tell you how much VRAM is being used. Turn the Texture Resolution up until the VRAM usage gets near the amount of VRAM you have on your GPU. Then fly around and test it. You should NOT notice any difference in performance. If you do, go back and turn your Texture resolution down a notch and try again. Your goal is to get your texture resolution as high as you can without impacting performance or going over your VRAM limit.

Lastly, a note on VSync. I told you earlier that the “Framerate-Lock to Monitor” setting should ALWAYS be on “Do Not Lock”. This is a tiny white lie. If you’re an advanced user, if you know what VSync is, if you know how it works and if you have enough performance to spare and you want to stop scene tearing, go ahead and turn it on. Even then, don’t turn it on until you are done tuning framerate, because VSync will obscure changes in fps, making it impossible to tell what effect a rendering setting has on your hardware. If you don’t know what it is or what problem it’s meant to solve…please leave it off and forget it exists. It will NOT improve your performance. If you’re like me and just want to learn about it anyway, read this but leave the setting off anyway.

Feature Affected Subsystem
AI Aircraft CPU/VRAM/Bus Bandwidth
Cars CPU
Clouds GPU
HDR GPU
Objects Bus Bandwidth (CPU on old cards)
Roads Bus Bandwidth
Forests Bus Bandwidth
Screen Resolution / Window Size GPU (usage proportional to resolution)
Shadows Bus Bandwidth (this amplifies all other bus bandwidth use a lot!)
Table 1. Feature vs. Affected Subsystem

***EDIT*** I didn’t want to have to do this but I’m going to be more heavy handed with the comment moderation because inevitably, the comments end up getting WAY off topic.  Feel free to ask questions or post comments directly related to the topic but this is not the forum for other discussions. I am also not going to be providing one-on-one tuning at this time so please do not post your specs unless asked. We have not begun diving into performance issues yet. The purpose of this post is to educate you on how to setup your own system in the most optimal way possible right now. Thank you for your understanding!

Posted in Hardware by | 37 Comments

ATC: Description of a System Pt 1

I’ve always been into photography as just one of my many expensive hobbies. A very respected Photographer Jerry Ghionis always says “You don’t have to be the best, you just have to be better than last week.” I’ve tried to keep that in my head while working on the ATC system because like you, I too want it to be the best…and that’s the long-term goal, but I have to be honest, the ATC system in X-Plane v10.0 is not perfect. There, I said it! The ATC system is a tough thing to model not just because of its complexity but also because humans are inconsistent and unpredictable. Humans add a touch of randomness to every decision from the simplest thing such as phraseology to the most elaborate thing like vectors for an instrument approach.

What I can say however is that it’s a system that’s designed to get better. Until now, the ATC system has been very stagnant with little improvement or change in many versions. I’ve completely started from scratch and come up with a system that can be built off of so that it gets better and better. If you think you have a list of requested features, I’m willing to bet that my list is longer. Like the scenery system and many other systems in X-Plane, there’s ALWAYS something that can be done to make things better.

Another thing to consider that may not be obvious to a lot of people. The ATC system is really two pieces in one. Of course, there’s air traffic control to give you instructions but more importantly (I’d argue) is the AI traffic. Before, AI aircraft just flew around doing whatever they felt like…almost like zombies. Now however, ATC has control of them. That means they play nice, it means they follow you around to some extent so that the world is alive wherever you go. It may not seem like much but when you turn the AI traffic off, you’ll feel very alone. My point is, airports now FEEL like airports. Even if you decide never to use the ATC system directly, just having the hustle and bustle of a busy airport is a win. Before anyone asks, yes the system is currently limited to 20 AI aircraft. The aircraft are on their own threads so those of you with multi-core processors will certainly rejoice in seeing that things are using those other cores. In the future, we do plan on having alternate ways of getting the traffic count up higher for really busy airspace but I’m not willing to discuss that just yet.

So what can you expect from the INITIAL release? AI planes will be around you. They’ll be on the field departing and arriving with you. As you depart and fly around, they’ll transition to pass by you enroute. You’ll hear/see them on text and voice and even out the window. AI planes run REAL physics so you’ll see controls deflecting, flaps moving etc. As a human, you can file a flight plan, grab a clearance, get taxi instructions, get a takeoff clearance, you’ll transition to Departure or Center. They’ll issue step descents and vector you in to an ILS or visual approach at your destination.

We also have designed in a lot of customization in the traditional X-Plane fashion. You can customize the voice and text phraseology. You can (and should) come up with your own airport taxi layouts. Insert hold short points, tag the taxiways with the real names, create your own runway flows and of course customize controller airspace and frequencies.

A note on runway flow which i think is really neat….You specify which runways get used for different operations based on wind, ceiling, visibility, time of day, initial heading after departure and aircraft type. This lets you model how the real airport functions under various conditions not just for realism but also for efficiency (which is why the real world does it that way to begin with).

There are a lot of features still left to add but I hope you’ll understand that it’s a brand new system in its infancy. I hope you can see that our goal is to continuously add features and improve it incrementally…and also do this while offering users ways to customize the experience. What you see in v10.0 is NOT the end of ATC development. It’s just the very beginning.

Finally, please do NOT ask “Will we have feature X?” or similar variations. I do not want the blog to become a center for feature requests…especially on a system such as ATC that’s just been born.

I keeeeed!

Posted in Air Traffic Control by | 115 Comments

Mommy where do baby airplanes come from?

“Well little Johnny, when a KC-10 and a 747 love each other very much…”

On a more serious (kinda) note, this is a shot of what happens when ATC fails at spacing its aircraft properly. These two planes flew all the way down the ILS like this which is obviously a bug…but fun to have a chuckle about as well. If you look off into the distance, you can see some other aircraft, also on the ILS lined up against the golden sky…very dramatic!

(Notes: This is v9 scenery, v9 planes, a slow debug build…nothing special here)

Posted in Air Traffic Control, Blooper Reel by | 42 Comments

Twitter Account Change

At some point, someone made a fake twitter account claiming to be the official XPlane one. They used the username that would have been our first choice.

It took some time but Twitter has resolved this issue for us. Our new twitter account is now @XPlaneOfficial however you should not have to do anything. If you were previously following our old name, you should have been moved to the new name automatically.

Posted in News by | Comments Off on Twitter Account Change

X-Plane News Feed

While I’m sure you all enjoy this blog…and perhaps even read and re-read it before bed because it’s life altering, it tends to be a bit….um….nerdy? Come on, it’s safe to admit it, even my wife makes fun of me when I mention the blog. Anyway, if you’re looking for NEWS about X-Plane in addition to the nerdy/geeky/dorky details that we post here, we now have a news “blog” at //www.x-plane.com/news. You can subscribe there, follow the RSS feed or do whatever you normally do. That’s where we’ll be posting updates about all of our products.

Yeah I know it’s a bit dusty and stale but we’re doing our best to clean off the dust and use it now that it’s a wordpress site and not a pain-in-the-butt-to-edit-html-site.

Posted in News by | 14 Comments

Some ATC Bloopers…(Free Willy!)

In testing some ATC stuff today, I was curious why I saw smoke coming from the water on the left side of the runway. As I got closer, I found a KC-10 rising from the ground like a mighty Phoenix….struggling to get out of the controlling grips of Air Traffic Control. Ben said it reminds him of Free Willy.

And of course the usual disclaimer…the purpose of the video is to have a giggle at the AI plane’s bug…ignore the ugliness of the rest of the situation. The colored lines are used for debugging aircraft routing issued by ATC.

Posted in Air Traffic Control, Blooper Reel by | 8 Comments

Laminar Research is atwitter!

+1 for learning a new word….atwitter!

a·twit·ter  (-twtr)adj. Being in a state of nervous excitement

Anyway, Laminar Research is now on twitter…a bit late to the party but at least we showed up and we brought some munchies so it’s all good. Please follow us and help us spread the word.

@XPlaneOfficial

Posted in News by | 6 Comments

X-Plane 9 for Android Updated – More Planes/Scenery

If you have an Android device, check your market for the new update. The update allows users to purchase aircraft and scenery add-ons if they wish. This is an “a la carte” style system. We hope you’ll find it more cost effective as a user to buy the aircraft/scenery that you want instead of having to buy an entirely new product for $9.99 just to get at a couple of planes that you like.

Posted in Android, News by | 6 Comments

V10 Release Date Mania

First, let me say that this post represents my opinions and my thoughts and does not reflect the official view of Laminar Research.

I’ll be the first to admit that the news and events that have “leaked” out regarding v10’s release date have created quite a bit of confusion, controversy and general discomfort amongst you guys; our fans/customers etc. I’m sorry to see the drama unfold in this manner. It’s certainly not intentional, it’s not a sign of v10 being delayed further and it’s certainly not a sign of v10 being canceled.

As i’ve said a dozen times already, v10 is very much alive and kicking. It consumes about 99% of all of our (the staff) time. It’s our #1 priority, it will remain our #1 priority and it has been for a long long time. There are many factors that contributed to the original delay of v10. I’m not going to go into internal details but I feel that it’s going to be a better product as a result. We’re not slacking off here. I don’t think there’s a single LR employee who’s put in anything less than a 40 hour work week in the past 3 years. I actually think the average is quite a bit higher and has been for some time.

One of the reasons for this tech blog is to give those of you interested an inside view into what it takes to write a flight simulator. It’s no simple task. In fact, in some ways it is rocket science!

I’m amazed by the amount of attention to detail that goes into XPlane’s development. Just as a quick example, I was  recently working on some ATC code and wanted to get a list of the runways at a given airport that had full ILS approaches. I was expecting there to be some kind of database lookup in the simulator that would say “oh runways 06 and 33 have full ILS approaches”. That’s a pretty basic assumption. “It’ll take 2 seconds to wire up” I thought….but that’s not how it works. There is no magical database for ILS approaches. XPlane doesn’t know about approaches directly, it knows about antenna types and location, OBS and glide slope angles. What I mean is, the database says “there’s a localizer antenna facing 036 degrees magnetic at lat/lon x/y and there’s a glide slope at x/y with a 3.5 degree angle.” This made my job a little more difficult because i needed to then compute the geometry of the localizer, glideslope and runways to determine what runway would benefit from a signal in that direction (don’t forget about parallel runways!). That kind of realism is unparalleled. What it means is that if a localizer antenna is offset at an airport because of obstructions (like runway 15R at Boston), XPlane will model the approach angle perfectly just like in the real world and you’ll come in at a slight offset. This is not new, the sim’s always been like this but it’s a new discovery for me. I guess my point is, sometimes even tasks that seem simple on the surface can be a bit more time consuming because we care about realism and the world is not a simple thing to model accurately…and that’s why this blog exists. We like to share with our users how COOL all of this stuff can be.

Getting back on track here, this blog gives you guys an inside look into our world so you have some insight into what kind of moving parts are in there. Our conscious decision to open this kind of dialog with our fan-base is a great thing, but it also can sometimes lead to miscommunications. Sometimes, we might say something in an innocent manner and you might take it out of context and misinterpret what we meant. For that, I’m sorry and we’ll take the blame.

With that said, I must ask and beg and plea that we all think twice before jumping to conclusions, trying to read between the lines and make inferences from quick unofficial statements made in a forum, a blog, facebook etc. Please do not assume that if a 3rd party vendor makes their own prediction of when v10 will ship, that it’s evidence of an official ship date. Please do not assume that if Austin himself says “by the end of the year” that he literally means “the end of the year.” If it shipped tomorrow, that would technically also qualify as “by the end of the year”. And NO, it’s not shipping tomorrow either. I can’t say that I blame people for wanting to hang on our every word and analyze our statements down to the verbiage but as much as I understand it, please try not to continue doing it. Official news, announcement of official features and official dates will be clearly marked as official. You will not need to read between any lines or make any assumptions.

So if v10’s not necessarily shipping in August and if “by the end of the year” does not necessarily mean “the end of the year”, then when is it shipping? The answer is….I don’t know! And that’s why there hasn’t been any official news yet. We’re not thinking about official dates yet because the date is arbitrary to most of us. When we’re all done with the core features and when it seems stable, then it will be released.

And because every post is better with a picture….Here’s a quick visualization of the math behind computing some ILS antenna intersections. The green line represents the localizer antenna beam. It starts in the background at the localizer antenna’s location and extends outward at the “OBS” heading of the antenna (note that in this unusual case, the localizer is NOT down the centerline of the runway!). The blue line starts at the glide slope antenna and extends outward at some angle above the earth’s surface. Typically this angle is about 3 degrees. The red line just represents the runway end. The point of this visualization is to see if you were perfectly aligned with the localizer AND the glideslope when you crossed the runway, where would you be? The intersection of these three planes is that pink dot.

Posted in Air Traffic Control, Development by | 41 Comments