I just started learning DirectX, but I have a problem with its version. I have ATI Radeon HD 4830, this card supports only DirectX 10.1, but when I ran dxdiag it said that I have DirectX 11, then I realized its probably talking about what version does the OS(Windows 7) support.

Now, I just ran some DirectX 11 benchmark and it worked. Does it mean that my graphics card is capable of running DX11 or it just runs in DX 10.1?

I want to know this, because I don't know what version of DX should I use for programming. I'd like to use DX 11 because of shaders, but don't know whether it's safe. If it's not I'd rather use DX9 with shaders, because I heard that DX 10 is buggy and I should use DX9 rather then 10, if DX 11 not available.

Or does DX 11 support older versions itself, so I can use DX 11 headers but limit myself to older features?

So what is your opinion? Should I use DX 11(code compiles, but I am not sure whether my card supports it), or DX 9?

Thanks in advance.


You can target older graphics cards (as far back as Direct3D 9 era) via the use of feature levels while using the Direct3D 11 API, yes. While I haven't heard Direct3D 10 called "buggy", I'd argue Direct3D 11 tends to be just all around better with various minor improvements to the API... with little to no reason to prefer 10 over 11. As a final note, Direct3D 11 requires Vista SP2 or later.

| improve this answer | |
  • \$\begingroup\$ Ok thank you for your answer. What would you use, then? DX 10, DX 11, or just use DX 9 to make sure everything will work on older hardware and use shaders instead of fixed pipeline? Thank you again. \$\endgroup\$ – michy04 Jan 20 '13 at 10:19
  • \$\begingroup\$ Ok, I'm satisfied with this answer, so I'm going to mark it as the answer. \$\endgroup\$ – michy04 Jan 20 '13 at 10:55
  • 2
    \$\begingroup\$ I'd generally go with whichever I was more familiar with. D3D9 will let you target older systems, but D3D11 exposes more features of modern hardware, generally maps better to it, and lets you write "Modern UI Style" Windows 8 apps (strictly speaking using D3D11.1, whereas 9 is unsupported at best there.) If you absolutely need a tiebreaker as you have no preference for any of the above, D3D11 will put you in a better position going forward to pick up e.g. D3D12+ whenever those come about, whereas 9 will become less and less relevant. \$\endgroup\$ – MaulingMonkey Jan 20 '13 at 11:15
  • \$\begingroup\$ Well, thank you once again. This seems like a pretty good reason to choose D3D11 over D3D9. \$\endgroup\$ – michy04 Jan 20 '13 at 11:24
  • 1
    \$\begingroup\$ Check the steam hardware surveys to see what your customers are running :) \$\endgroup\$ – Roy T. Jan 20 '13 at 13:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.