Why would I want to use a particular version of DirectX? How should I choose?

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.


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.