Wednesday, December 03, 2008

Hardware Guidance: Four Cores and DX10

I think we've reached the point where, if you are putting together a new computer and have X-Plane in mind:
  • Get a quad-core machine if the pricing is favorable (and I think it should be now).
  • Get a "Direct X 10" compatible graphics card.  That would be an nVidia 8, or 9 series (or I guess that crazy new 280 card) or a Radeon HD 2000/3000/4000.  DX10-type cards can be had for $100 to $150.
Quad core is easy: X-Plane 921 will use as many cores as yo have for texture loading (especially in paged scenery), uses two cores all the time, and uses 3 during DSF load.  The infrastructure for this additional scalability (previous builds used two cores, more or less) will let us put 3-d generation on 4 cores or more.  More on this in another post, but basically X-Plane's utilization of cores is good and getting better, so four cores is good, particularly if it's not a lot more expensive.

Now for DX10, first I have to say two things:
  1. We don't use DirectX.  We have no intention of switching to DirectX, dropping OpenGL support, or dropping OS X/Linux support.  I just say "DX10" to indicate a level of hardware functionality (specified by Microsoft).  The DX10 cards have to have certain hardware tricks, and those tricks can be accessed both in OpenGL and Direct3D.  We will access them by OpenGL.
  2. We are not going to drop support for non-DX10 cards!  (We're not that crazy.)
X-Plane does not yet utilize those new DX10 features, but the DX10-compatible cards are better cards than the past generations, and are now affordable*.  By making sure you get one of these, you'll be able to use new graphic features when they come out.

* The roll-out of DX10 cards has been similar to DX9.  With the first generation cards there was one expensive but fast card and one cheap but slow card.  With DX10, NVidia got there first, with DX9 ATI did.  Like a few years ago, now that we're a few revs into the new spec, both vendors are making high quality cards that aren't too expensive.

4 comments:

Anonymous said...

regarding the quadcore advice and considering cost:

- I can get a Quad 4 x 2.4GHz for EUR 170

- I can get a Dual 2 x 3.17GHz for EUR 178


won't the much higher clock speed of the Duo be of more use for overall performance (FPS) than the additional (but slower) cores on the quad which help only during certain operations (scenery loading)?

Just to make sure people will not be disappointed when going for a quad instead of a duo for the same money...


Now, a Quad 4x 3.2 sure is another thing but one has to hand over about EUR 1,350 for that :( but you will save on heating in your flat :)

Jens

Benjamin Supnik said...

Jens -- you are absolutely correct...only high through-put of the core running the main rendering loop can give you real fps improvements.

What the extra cores give you is the ability to crank up 3-d settings (so that you can DO something with that graphics power) without the 3-d prep interfering with that main loop.

In the case of the quad vs. dual there's more to it than that -- you'd also need to look at how much cache they have, etc. I can't say what's going on with European prices - they tend to be higher than US prices across the board.

Photosmith said...

For a comparison of US pricing, you can use newegg.com:

E8500 (2 x 3.16ghz) = $188
Q8200 (4 x 2.33ghz) = $190

The E8500 is 35% faster when talking single-threaded speed or apps using a max of 2 cores, but with an app that can fully utilize every core you have, the Q8200 has a theoretical 47% more processing resources available.

I think Jens' comment was basically just to try and get confirmation that X-Plane uses >2 cores by enough of a margin to make up the 35% deficit in single-threaded performance due to the Mhz loss.

Benjamin Supnik said...

The answer is - I don't know - it depends on the kind of scenery you use and configurations.

If the load on scenery setup is high enough to matter, then yeah, two cores will beat a 35% clock increase.

But if the limitation is JUST the main rendering loop trying to max out fps, you want the 35% fps increase.