I really have no -need- for the new features of DX11, but given its the current and cleaned-up interface, I'm tempted to use it. However, I will need my game to run on machines that do not have DX11 hardware. I don't need to target XP (Win7 is fine).
What I'm (obviously) completely unclear about is: if I write to the DX11 apis and link to the DX11 dlls, but do not use any DX11-specific functionality, will the game run on a machine that only has DX9 hardware but that -does- have the DX11 redistributable?
Since (according to Steam's stats) DX11 penetration is still only about 60%, and I don't require anything new from DX11, it seems like a no-brainer to use DX9. But if I can write to DX11 and it'll run on DX9 hardware, all the better.
Can someone clarify this for me?
As a tangential question, I've also been playing with the DXUT framework which seems to be able to target both, but if I call D3DX11CompileFromFile to compile a shader (vs_2_0), is there any way that's going to work on DX9 hardware?
Thanks for humoring the DX noob!
Cheers,
Dave