7

I've noticed a number of games lately that give me a choice of what version of DirectX to run the game with, usually 9, 10, or 11 (or some subset thereof). I have a graphics card that supports DirectX 11 (AMD 6750M, but it shouldn't really matter for this question), but I've noticed that some games still recommend using the older version of DirectX when I use whatever 'detect hardware' optimal graphics settings the game suggests. Further, in some games, I've actually noticed a significant improvement in FPS after switching to the older version.

In general, is there a rule of thumb for determining which version of DirectX I should be using? Is there any reason this option is even given, rather than just automatically using the newest supported by whatever video card is available?

2
  • I'd guess that it's the choice between new DX11 features or not, so basically the standard features vs performance thing. Commented Jul 18, 2012 at 23:33
  • Older DX versions have less complexity (ie. faster), which helps if the game can't use the later additions anyway.
    – Alok
    Commented Jul 18, 2012 at 23:41

3 Answers 3

2

Disclaimer: The following is based on personal experience, Your Mileage May Vary.

My rules of thumb are as follows:

If running the game on medium or low settings, use DX9.

If running the game on the highest settings, use DX11. (try DX9 in case of performance issues)

If the game tells you to use DX9, use DX9. If the game tells you to use DX11, you may still need to use DX9. Games tend to overestimate the performance of your computer.

The reason for this is because by far the most important difference between the two is advanced effects that are only enabled by DX11. However, if those effects are not in use, DX11 can be slower than DX9, especially if your video card has older drivers. Therefore, on older cards its better to use DX9, unless you are having 0 performance issues on top settings, in which case it's fine to use DX11 for the extra features. DX10 is never really the right option in my experience.

6
  • 2
    You say that 'DX10 is never really the right option' - does this include even cases where the choice is only between DX 9 and 10, and 11 is not an option? Commented Jul 18, 2012 at 23:45
  • 1
    Good question. Those cases don't show up very often. The vast majority of the time I would say DX9 is going to be better, simply because DX10 offers very little in improvements and tends to hurt performance. If a game only can be set to highest settings while using DX10, that would be the one situation I can think of where I would use DX10.
    – Lawton
    Commented Jul 19, 2012 at 1:55
  • @Lawton What about games which use DX11 for it's performance increases? Switching DX9 -> DX11 has shown me 20+ fps increases in some games due to optimized rendering pipelines that it provides. Commented Jul 19, 2012 at 21:55
  • @Darth Those cases do exist. These are rules of thumb, and not going to be perfectly accurate. The only true way to be sure which is best is to try it for yourself on both settings.
    – Lawton
    Commented Jul 20, 2012 at 1:15
  • 1
    "DX10 is never really the right option in my experience" - The reason you'd use an older version of DirectX is that your graphics card doesn't have the circuitry for the new features, meaning they need to be emulated in software (causing often severe performance hits). Enabling DX10 on a DX10-supporting graphics card shouldn't hurt performance that much. Could it be that you upgraded from a DX9 graphics card to a DX11 card in the past, which would skew "your experience?" Commented Jul 20, 2012 at 18:36
1

If your graphics card supports it, always take DX11. A higher version will usually only cost you more performance if you enable additional graphics features that come with it (usually something like tesselation), and games usually give you control over that.

The reason for this is that the rendering code behind things that are both in DX9 and DX11 mode will either be the same (= same performance, unless you have bad drivers) or optimized for speed in DX11 (= will look the same, but run faster). The only thing that actually changes in the game code will be a couple of different function calls here and there, but the time-expensive things will stay the same (there's just no reason for it to be different)

The advantage is that higher versions of DirectX sometimes enable the developer to use alternative methods to calculate certain things in the game (a simple case would be e.g. geometry shaders for sprites, GUI, etc. on the screen, which isn't possible in DX9), which can give you considerable performance increases.

If you experience noticeable slowdowns (meaning >5%) between different versions even though you're graphics settings are the same, then it's one of two things: The developer intentionally did something without giving you an option to do something about it (e.g. automatically use a more complex postprocessing step with DX11) or because of driver issues. Other sources, like your operating system having more overhead to deal with in DX11 code, should usually not be noticeable at all.

0

It all depends on the rest of your system. If you are running a system that can barely play a game, I would suggest DX9 because it was optimized for the slower systems that were out when it was written. If you are running a better system, I would use DX11. If your options are only DX9 or DX10, personally I would choose DX9 because DX10 was not that big of an improvement to DX9 and, from my personal experience, usually causes a significant drop in FPS. But, as Lawton says in his post above, every system and game perform different, so the only way to be sure is to try the different options available for each game. Also, if you are using an ATI card, I have heard that even the DX11 compatible cards sometimes have conflicts with DX11 causing performance loss. I cannot verify this, however, because I have an NVidia card.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .