
please wait
While I tested some code from a Direct3D 11 tutorial, I found out that my graphic card wasn't compatible with Direct3D |
but the Direct3D 11 tutorials in the DirectX SDK works perfectly fine on my computer, even though my graphic card doesn't support Direct3D 11. How is this possible? |
there would still be parts of the code that just work with Direct3D 11, wouldn't it? |
How can I make my Direct3D 11 code compatible with older graphic cards? |
Did you try downloading the latest drivers? |
As you said, set the feature level down. If the card doesn't support D3D 11, then the new features won't work. You could also query the D3D level of the graphics card programatically. If the card supports D3D 11, then use a D3D 11 code path, otherwise go down a D3D 10 (or 9) code path. |
Wikipedia wrote: |
---|
The Direct3D 11 runtime is able to run on Direct3D 9 and 10.x-class hardware and drivers,[15] using the D3D10_FEATURE_LEVEL1 functionality first introduced in Direct3D 10.1 runtime.[14] Feature levels 9_1, 9_2 and 9_3 encapsulate various features of popular Direct3D 9 cards, and feature levels 10_0 and 10.1 refer to Direct3D 10 and 10.1 respectively; each upper level is a strict superset of a lower level. Feature levels allow developers to unify the rendering pipeline under Direct3D 11 API and make use of API improvements such as better resource management and multithreading even on entry-level cards, though advanced features such as new shader models and rendering stages will only be exposed on up-level hardware.[18] [19] |
Wouldn't the completed file be much, much bigger if I had separate code snippets for different versions of Direct3D? |