FSX - SP2 and DX10 Performance

Remember, my complete blog is now at: https://www.SebbyLive.com/   (https://www.sebbylive.com/post/2007/11/FSX---SP2-and-DX10-Performance.aspx)

The first point that is worth mentioning here is that SP2 (and therefore Acceleration) do introduce a new slew of performance improvements. These improvements are various but the bulk of the work focused around the improvement of our scenery/autogen batching technology. These goals were main in order to reduce the number of “draw calls” (number of times we ask DirectX to draw something) made to the hardware as the overhead involved is actually quite significant and is one of our major bottlenecks (especially on multi-core machine where other background tasks are spread across various cores). I do not have specific numbers on this and millage will generally vary based on settings and location. But overall, based on our test suite, the improvements offset the costs that came with some of the architecture changes we had to make in order to support DX10 and in some cases goes a little further and gives a reasonable performance boost.

Of course, the question on everyone’s mind is “But what about DX10? ”. To start, it might be good to set some context. A recent article on HotHardware.Com actually looked at some of the new DX10 releases and compared the performance to their DX9 counterpart. Overall, for most of the titles, the performance was lower. The consensus seemed that this drop was likely due to the addition of several visual features which take advantage of the new DX10 hardware. Here is a snippet from the article which summarizes well the content of the overall article and the conclusions that are making.

From:https://www.hothardware.com/articles/The_State_of_DirectX_10__Image_Quality__Performance/?page=1

The DX10 exclusive effects available in the five games we looked at were usually too subtle to be noticed in the middle of heated gameplay. The only exception is Call of Juarez, which boasts greatly improved graphics in DX10. Unfortunately these image quality improvements can't entirely be attributed to DX10 since the North American version of the game -- the only version that supports DX10 -- had the benefit of a full nine months of extra development time. And much of the image quality improvements in Call of Juarez when using DX10 rendering were due to significantly improved textures rather than better rendering effects.

Our test results also suggest that currently available DX10 hardware struggles with today's DX10 enhanced gaming titles. While high-end hardware has enough power to grind out enough frames in DX10 to keep them playable, mid-range hardware simply can't afford the performance hit of DX10. With currently available DX10 hardware and games, you have two choices if you want to play games at a decent frame rate; play the game in DX9 and miss out on a handful of DX10 exclusive image quality enhancements, or play the game in DX10 but be forced to lower image quality settings to offset the performance hit. In the end, it's practically the same result either way.

While the new DX10 image quality enhancements are nice, when we finally pulled our noses off the monitor, sat back and considered the overall gameplay experience, DirectX 10 enhancements just didn't amount to enough of an image quality improvement to justify the associated performance hit. However, we aren't saying you should avoid DX10 hardware or wait to upgrade. On the contrary, the current generation of graphics cards from both ATI and NVIDIA offer many tangible improvements over the previous generation, especially in the high-end of the product lines. With the possible exception of some mid-range offerings, which actually perform below last generation’s similarly priced cards, the current generation of graphics hardware has a nice leg-up in performance and features that is worth the upgrade. But if your only reason for upgrading is to get hardware support for DX10, then you might want to hold out for as long as possible to see how things play out.

My point of view is similar. The two main components in my opinion for poor performing DX10 titles are the abuse of DX10 features and the lack of maturity of DX10 drivers...

The second aspect, well, we don’t really have control over. Hardware manufacturers are dealing with new architectures and a totally new driver model. It will likely take a while for the DX10 drivers to take full advantage the hardware as DX9 drivers are today.  When it comes to the abuse of DX10 features, it’s plain simple. The hardware does allow you to do more in terms of flexibility, but this does not mean that this is all free. Increasing shader complexity, bumping up texture sizes, … All this does add up and even if the new DX10 hardware is faster, that it is still more than it can handle. So most of these games does perform poorly mostly because they decided to sacrifice performance for eye-candy.

If you read Phil Taylor’s Blog, you probably already have the information I will post below. But essentially, here are two shots of SP2 running on the same system and flight settings. The only difference is whether we used DX9 or DX10. Here are the two screenshots to show the performance improvements (with our new visual improvements such as water and bloom turned on), taken on a 2.4 Ghz Intel Core Duo, with 1GB of RAM, and a GeForce 8800 GTX.


DX9 ( 24.1 FPS, 30 set as goal )


DX10 (30 FPS, 30 set as goal )

So roughly, this is about a 20% performance increase. In fact, as far as we know we are the only title so far that does benefit from a performance increase under DX10. There were several things that had to be factored in our design but overall the main problem we had was a time and resource constraint and we had to aim for a smaller set of features that gave us the best bang-for-the-buck.

I know some are disappointed and this probably stems from two reasons. The first part being the overall level of hype and expectation towards the new DX10 hardware. The fact is that the hardware cannot necessarily do more in terms of computing power (well slightly more) but only drops several of the barriers that were preventing developers to express more creative freedom and explore new rendering techniques and algorithms. Unfortunately, many developers took this a little too far and essentially bring these cards to their knees. This was a decision on their part, aiming more towards eye-candy and hype than providing a “usable” gameplay experience on the new hardware. We knew this would pose a problem if we took the new features too far and decided to concentrate our efforts on a few key points:

  • Restructure our rendering engine so it can properly handle DX9 and DX10. We are essentially thinking forward so we can make future releases even better.
  • Take advantage of the new hardware to improve performance. We do take advantage of this under DX10 to improve our batching and our handling of textures/materials, hence the ~20% performance increase.
  • Add visual eye-candy in areas where we can control the cost and get the best improvements considering the constrained amount of time we had.

This being said, this is why we are now calling SP2/Acceleration a DX10 preview. Visuals should go through SIGNIFICANT improvements in the next release.

The second part comes from this “mockup DX10 screenshot” that was released a while back… As Phil mentioned, this was a really big mistake on our part. The initial intent was for our artists to express themselves and give a visual representation of what a DX10 version of Flight Simulator should look like (and it did serve as a template when deciding which items we should be focusing on). However, I doubt this mockup was ever intended to be a “promise of what FSX DX10 will look like”. We did try to get as close as possible but due to various factors including hardware delays and re-architecture work we had not predicted, there was no way we could meet the expectations in this mockup.

So where are the differences? Well as mentioned in a previous post, the changes we made that affect the visual look of FSX are mainly concentrated in the lighting (real High-Dynamic Range lighting versus the fake bloom we were using), improved shadowing on the aircraft (higher resolution on the exterior and enabled on the interior) and water (it does not dynamically move, but the shader was significantly improved and includes some new features such as whitecaps). Single screenshots may not do justice to the new features. So as I start discussing some of the new features (as I have already done with the VC self shadowing), I will attempt to provide screen captures and videos which does a better job at demonstrating the before-and-after…