Compatible versus Capable

 

I keep hearing "FSX isn’t SLI or Dual core compatible/capable"; although strictly we should be speaking of multi-core.

 

This statement is not really accurate. Let’s look at the definition of compatible and capable first.

 

Compatible most often means "peacefully co-exists but doesn’t use". FSX can run on SLI or multi-core systems. So by definition FSX is compatible.

 

Capable most often means "uses". FSX can use SLI and Dual core today, just not as well as we and the community would like. 

 

What do I mean by this? Let’s talk in terms of SLI first and then multi-core.

 

SLI

 

SLI and Crossfire happen in the driver. The app stays out of the way and, as long as the app doesn’t do any of the 2 or so "bad things" that could break SLI it just works, see Note 1.

 

The main issue is FSX is CPU bound so the extra GPU doesn’t provide any benefit until fill rate, as determined by resolution and AA settings, drive past the CPU-boundness.

 

So SLI doesn’t benefit FSX much except at extreme resolutions with high AA. This is borne out by the review “Real-World Gaming CPU Comparison with 8800 GTX SLI”.  This article proves at 19x12 or 25x16 with 16xAA on the Intel CPU, the fill rate requirement is high enough to counterbalance the CPU-boundness and show some benefit for FSX. And these conclusions are borne out by the community, see Note 2.

 

On AMD, the CPU is enough slower enough that even with those fill-rate settings the CPU side of the performance cost equation still dominates.

 

As another note, ExtremeTech here indicates other games have varying success with SLI.  This shows FSX wasn’t showing a negative impact like some titles.

 

True we could be better, but it is worthwhile for the community to realize that these issues are not occurring in FSX in isolation.

 

If we get decent impact from SP1 on the CPU side, then SLI scenarios should get that much better.

 

Multi-core

 

As my blog post here stated, we do use multi-core today. We use it primarily during loading when our thread and fiber system used to schedule the various parts of the simulation are not so highly coupled. And various people have measured this.

 

What we don’t do today is make extensive use of threads across cores during rendering. The threads we do have are scheduled by the OS across cores, but we don’t do that ourselves.

 

So again it is incorrect to state FSX doesn’t use multi-core. It is just a question of how much.

 

And there are several instances of top game developers discussing how hard multithreaded programming is, here by John Carmack and here by Gabe Newell. As Aces is doing, Valve relooked at this and here is Gabe’s most recent discussion.

 

Future Goals

 

One goal of SP1 is to reduce the CPU-bound nature of FSX which should help SLI by reducing the point at which benefit is shown, eg at a lower resolution.

 

Another goal of SP1 is to increase the multi-core nature of FSX and get benefit during rendering. How much of that we get in SP1 is still to be determined.

 

But let’s be clear about what is and is not true today; in the interest of facts and rational discussion. It’s only then that our roadmap makes sense.

 

Note 1:

 

From

 

http://developer.nvidia.com/object/gpu_programming_guide.html

http://developer.download.nvidia.com/GPU_Programming_Guide/GPU_Programming_Guide.pdf

 

See

 

pg 59 "When the two graphics boards are then linked via an external SLI bridge connector, the driver recognizes the configuration and allows you to enter SLI Multi-GPU mode. In SLI Multi-GPU mode the driver configures both boards as a single device: the two GPUs look like a single logical device to all graphics applications."

 

so SLI is all the driver.

 

See

 

pg 61 "Application developers can force AFR and SFR modes by creating an application-specific profile in the driver, i.e., in the display driver control panel, click on the GeForce tab, select “Performance & Quality Settings,” click on “Add Profile,” and enter the name of your application’s executable. Then enable “Show advanced settings” and choose “AFR” or “SFR”."

 

so using the control panel you can enable SLI on FSX.

 

However, given FSX is CPU bound this only has an effect at high resolutions with max AA. Another thing to remember is to be sure and disable VSYNC and make sure your frame rate target is bumped up otherwise FSX itself is throttling you.

 

Note 2:

 

Parts of the SLI discussion come from this thread on fs2004.com