Well, this has been a crazy couple of weeks. X-Plane 12.00 is now available for Early Access – in other words, everyone can get X-Plane 12. Over the next few weeks we will post more about ongoing development and get into some of the new features in depth – there’s a ton to talk about in X-Plane 12. For today, here are just a few notes on some issues that have come up over the last few days.
X-Plane 12 has been in a private alpha test program with third parties since December (!) – almost nine months. During that time we built 38 (!) official alpha builds, recut the global scenery five times, and committed over 4000 checkins to X-Plane’s source code (plus more to the aircraft, scenery tools and art libraries). The alpha program included completion of major features, lots of debugging, and changing the product in response to early alpha feedback.
So why Early Access now? Not because X-Plane 12.0 is done – we still have over two hundred open bugs and a lot of things we want to do. X-Plane 12 is in Early Access so that the entire X-Plane community can be involved in X-Plane 12’s growth, not just a limited number of testers.
With X-Plane 12.0 in early access, we don’t have to say ‘no’ to users and devs who want to get started with 12, and third parties can get their entire teams using the new sim and run their own test programs.
(We can also finally open up our developer relations program to a wider audience.)
Major Areas of Work
Here are some of the major areas of work ahead of us:
- Clouds – we are working on the shaping and quality of clouds, improving resolution, fixing artifacts, and improving performance. Clouds are probably the single most expensive part of the renderer, so they are a constant tug-of-war between quality and speed.
- Lighting – there are quite a few lighting and atmospheric scattering bugs that affect the sim, as well as work to do improving auto-exposure and tone mapping.
- Philipp is working on an airbus MCDU, which we expect to ship during early access.
- Third party interfaces – we have a few new SDK and authoring features that are mostly completed that will ship during early access. The elephant in the room is third party access to the weather system.
That’s One Blurry Airbus
X-Plane 12 moves some work that used to be on the CPU to the GPU (looking at you, ocean waves!), and virtually all new computing work in X-Plane 12 is on the GPU. When we discussed this before Early Access, there was a lot of teeth gnashing. “You’re gonna use more GPU power? I can’t buy a 3080, I’d have to sell my kidney!”
We still have a lot of GPU optimization left to do, but we also spent some time before beta 1 working on performance, particularly at intermediate settings. User with high end hardware have been pleasantly surprised to see production-level FPS in beta 1, and a common request is “I have 60 fps and blurry clouds, can I get a higher max setting.”
(I do suspect there is a huge gulf between the haves and have-nots for GPU power – because there’s a huge range of hardware performance amongst our users. We will keep optimizing.)
What we didn’t optimize was VRAM use, and this is why blurry textures is a common problem with the first beta. X-Plane 12 uses Vulkan/Metal as its renderer, always, so it uses our Vulkan/Metal memory management strategy: we dynamically bring the resolution of textures down to fit within your available VRAM, with some guessing as to which textures are most important.
The texture slider in the UI sets the maximum texture resolution X-Plane will attempt – if you have a card without a lot of VRAM, setting this lower can help avoid “thrash” as X-Plane tries to fit 4 GB of textures into 2 GB of VRAM. But X-Plane will further lower res until it fits – X-Plane will not use system memory as backup texture memory, nor will it slow the framerate and stutter by shuffling textures between vRAM and system memory on the fly.
I’m afraid I don’t have any useful information about how much VRAM will get you a better experience – we’re going to do an optimization pass and see what we can tighten up.
I suspect the big driver of VRAM is memory used for effects – X-Plane 12 has HDR always on, but also has extra VRAM reserved for screen space reflections, 3-d water, dynamic weather effects, clouds, etc.
One thing that can help (and I know no one wants to hear this) is to run at a lower resolution. The sim has to internally use VRAM proportional to the size of the winddow or monitor res you fly at. Jumping from 1080p to 4K doubles the resolution in each dimension (making each pixel half as big) but uses 4x the VRAM for surfaces. Full screen anti-aliasing increases VRAM by its factor (4x MSAA = 4x VRAM) for some of those textures, so it’s more efficient than higher res.
What’s All This Magenta
X-Plane renders magenta when it hits a numeric error (a NaN value) inside the rendering engine. Right now there are multiple causes of NaNs – it’s not all one bug because magenta is a symptom, not a cause. A few we know about:
- We believe there’s some kind of problem specific to the GeForce 900 series. Sidney bought one on eBay so we can debug this.
- I’ve seen NaNs caused by the traffic debugging lines for ATC – I suspect that particular shader has a bug.
- We can sometimes get NaNs from the past frame – they get “reflected” by SSR and propagate from one part of the frame to the other.
There’s no easy answer here – each bug has to be squashed one by one. These are high priority bugs and we’re working on them now – hopefully each fix will make things a bit better, but don’t be surprised if some users see less magenta in the next beta and others do not.
Fuzzy Scuzzy Rendering
FSR stands for FidelityFX™ Super Resolution. FSR is AMD’s free open source up-scaling technology. The idea of up-scalers is:
- Lots of people have 4K monitors.
- Not as many people have GPUs that can run games and simulators at 4K – they’re expensive.
- Upscaling a 2K image with a little bit of smarts uses a little bit of GPU and looks a lot better than just running the monitor at low resolution.
When you move the FSR slider to the left, X-Plane renders its 3-d image at a lower resolution and then upscales it to the monitor. This saves GPU time and VRAM at a cost of image quality. The image should look better than running at low resolution but not as good as running at high resolution.
Should you use FSR? I would only recommend using FSR if you want to/need to run at 4K and your GPU is struggling. Support has had a number of complaints about blurry rendering from users with FSR on – FSR is resulting in a less detailed image on purpose just like reducing resolution does. If you are going to use FSR, use full screen anti-aliasing – it helps.
We are still undecided about the future of FSR in the simulator. We added the option of up-scaling based on user requests, and if we didn’t ask for it, we’d probably be asked for it. But we’ve also had lots of “I set this slider low and now everything looks terrible.”
(Why don’t we use FSR2 or DLSS? Both of these upscalers require motion vectors as inputs from the rendering engine, something X-Plane does not provide. We may support them in the future, but adding motion vector generation is not trivial.)
Beta 3 Coming Soon
Over the past weekend part of the team met in person to do planning and roadmapping; beta 3 should be available shortly, with some of the bug fixes we’ve already coded. X-Plane 12 for Steam is in review — hopefully it will be available Real Soon Now™.