In my previous post I described some of our findings for X-Plane 10 with respect to GPUs.  This begs the question we get asked all the time: what about SLI/Crossfire?

For those of you not familiar with SLI and CrossFire, they are technologies (from NVidia and AMD respectively) that use two graphics cards to share the load of drawing a 3-d scene.  The idea is to double the shading power of your graphics system by having each card render every alternate frame.*  You can get SLI/CrossFire with two GPUs and an appropriate motherboard, or by buying one of the monstrous “x2” GPUs.

Now to try to answer some often-asked questions:

Can X-Plane take advantage of Crossfire/SLI?

No.  Neither X-Plane 9, nor 10.0, will be capable of running with Crossfire or SLI.  From what I can tell, there are a few sites in the code that need to be reworked a bit to be ready for these technologies.  If you have an SLI/Crossfire setup, I would expect you to get the same framerate with only one of the GPUs.

Will X-Plane 10 ever take advantage of Crossfire/SLI?

Maybe someday.  If we can get our code clean enough to work with these technologies, I will post an update on this blog.  But I can’t promise anything – for all I know we may someday hit some horrible show-stopping problem.

Would SLI/Crossfire be useful for X-Plane?

Not for X-plane 9.  X-Plane 9 can’t even max out a single GPU from the previous generation’s top end cards, so there’s really no need for two of them.

For now there are resolutions where two GPUs would be necessary to get better frame-rate.  If we can run 2560 x 1440 at 20-30 fps on one card, it would in theory be nice to run at 40-60 fps on two.

But the next generation of GPUs is on the way, so it may be that the next generation of cards will be fast enough on their own.

Should I Buy an SLI/Crossfire setup?

Not for X-Plane – we can’t take advantage of it right now.

Here’s another way to look at it.

  • If you wanted 2400 GFLOPs on your GPU in August of 2008, you could buy the Radeon HD 4870 x2, which is basically two 4870s jammed together on a single card via Crossfire.  This would set you back $549.
  • 13 months later, in September of 2009, AMD released the 5870, which could put out 2720 GFLOPs as a single GPU for $400.

The performance curve for GPU power is really quite steep, and a dual-GPU system typically costs at least twice as much as two of the single-GPU form.  That’s a lot of money to pay for fill rate that will be available in about 18 months in single-card form.

So the short version is: we don’t support SLI/Crossfire yet.  Someday we may work with these technologies, but even if/when we do, they’ll only make sense if you really like high resolutions and framerates and money isn’t an object.

* SLI can operate in “split-frame” mode where each video card takes half of a frame, but this is not so good because a full frame of geometry must be sent to each card for each frame, effectively doubling PCIe bus use.  In alternate-frame mode, each card only sees every other frame, and thus only needs half the bandwidth – both cards together use the same bandwidth as one card would have.

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.

13 comments on “X-Plane, SLI and CrossFire

  1. Great as always Ben.

    Do you have any comments to make on Eyefinity or 2D Surround? I think today the only reason why someone would like to get in the CrossfireX/SLI bandwagon for X-Plane is the need to drive multiple monitors from one computer and sustain framerate.

    Again, I understand X-Plane doesn’t support multiple displays directly, but the option for hobbyist cockpit builders without SLI or Crossfire can become crazy expensive. Granted, two 6970’s cost a lot, but on the other hand so it is a network of computers. Just the cost of 3 6-core chips (for 3 different PCs that would give the home cockpit a nice AI experience) would almost buy 2/3 of a high end PC with 2 6970s.

    Am I too off? 🙂

  2. The only justification I could have possibly seen for having SLI/Crossfire is wide-screen gaming, running 3 monitors off one computer similar to Matrox’s Triple head 2 Go. However your previous post seems to throw cold water on this idea since multi-card configurations usually halve the PCI bus, effectively starving each card. Essentially, instead of having one hungry mouth to feed, you now have two competing for a pipeline which hasn’t grown to accommodate them.

  3. I think x -plane 10 should support SLI since most of the coding somehow was done from scratch. a lot of people would love to take advantage of SLI setup for a better performance, anytime any flight sim is mentioned the first thing that comes to mind is FPS and how smooth the flying experience is, so if you can improve it somehow please do so. I’ve been waiting for X-plane 10 for a while and I can’t wait to have it hoping I will make the switch finally to x-plane.

    Thanks.

  4. With SLI/Crossfire, most graphic engines suffer under so called micro stuttering, most likely X-Plane will do so, too. In timing-sensitive applications like flight simulations this is a serious issue. SLI/Crossfire seem to be a clever idea, in practice they often are a disappointment.

    1. This is more of an issue with AFR and happens when you have a 2-card setup. Tests have shown that a 3-card setup eliminates the issue – at the cost of making the solution prohibitive 😉

    2. Which games/engines do you notice micro stuttering in? I added a second GTX 480 to my system a few months ago and didn’t notice anything like this.

  5. Can you explain why CrossFire/SLI would have to be supported at the level of the XP codebase? I thought it’s the driver that distributes the load between cards…

    1. In order to cleanly split the rendering between two cards, the app has to avoid operations that are legal for OpenGL but very inefficient for two GPUs in a Crossfire/SLI setup. The ones I know about include:
      * Any type of inter-frame render-to-texture dependency.
      * Any read-backs from card (or any other potential time-stamp stalling operation) that are delayed only one frame and not two frames.
      These operations have basically no penalty on a single GPU but chew bandwidth or limit what the second card can do on a dual-GPU system. So we have to make sure we have none of these cases in X-Plane. I know off-hand that we have at least two of them.

      1. This is why scissor tends to be the rendering mode of choice for apps not optimized for this type of technology – it means that each card processes every frame (to avoid some of the problems mentioned by Ben), but in the end will render only half of each. It is not efficient since all cards have to process essentially everything including geometry, and the bandwidth of the PCIe bus can be easily saturated because of all the data traffic. Because of that, the best results will be achieved by cards running on motherboards that support a 16x/16x configuration (instead of 16x/8x).

        1. My view is: if we have to run scissors to run SLI, there’s no point in doing it at all – X-Plane needs bus bandwidth, and asking a user to get an expensive 16×16 mobo to have the honor of making two insanely expensive GPUs both work is diminishing returns. At some point you’re better off with two cheaper computers.

  6. I completely agree that scissor mode is not desirable. That’s why I’d love to see X-Plane optimized for AFR some day 😉

    The good news on the hardware side is not just that PCIe 3.0 is coming, but also that Sandy Bridge E will bring 40 lanes of PCIe bus with it – so 16x/16x will eventually be mainstream and not exclusive to X58/LGA1366.

    All in all, these are exciting days – it’s really great to know that we are starting to get the most of the cards that we have in our machines. Thanks Ben and LR for the amazing progress!

  7. I think Eyefinity with bezel correction is already very useful technology (except you can’t drag&drop windows) on X-Plane. 5 vertical HD monitors gives me 1.8m wide display with 5600pix. The virtual cockpits are almost real size + TrackIR. It would be nice to have 2 cards working on XP10, XP9 can’t saturate the 5870 E6 even with 11Mpix. Unfortunately no promisses, so let’s forget about it.

  8. Speaking of performance, it would be nice to know something about the perf effects of the AI subsystem, now that we’re approaching release. Could you wrap up a post on this as it would be very useful for those of us building FTDs such as myself. Now, it’s pretty clear you won’t be able to just crank it up to max and not get an effect, but it would be nice to see how XP10 performs in this regard at this stage.

Comments are closed.