すいません、コードの質問ではないのですがよろしくお願いします。

GeForce2〜4などのDirectX7、8世代のグラボ(ドライバは最新のDirectX9c対応のもの)に対して、
シェーダー2(3?)などのDirectX9の機能を使ったプログラムを動かした場合、
ソフトウェア的にエミュレートされるものなのでしょうか?
それとも動作不定になるのでしょうか?

これからDirectXを本腰いれて勉強しようと思っているのですが、
ビデオカードにあわせてDtx8にしようか、最新の9にしようか、考えたいので
よろしくお願いします。