在龔敏敏的 《關于D3D11,你必須了解的幾件事情系列》文章里看到DX11支持DX9特性的細節,特別在DX11的例子中試了一下。
我的顯卡是Geforce GT440,跑DX11的例子沒有大問題,修改了一下DXSDK里的最簡單Shader例子,跑出來的結論是,DX9_3可以創建設備,但是在CreateVertexShader地方失敗了,嘗試將Shader編譯版本降低到VS_2_0也是持續失敗,于是乎證明了DX11的接口及引擎不能簡單通過調節FEATURE_LEVEL來變成DX9級別跑, 最關鍵的是,DX11不支持XP,XP下跑DX11的例子直接就報找不到DLL。
因此,我覺得DX11里的DX9的兼容級別很蛋疼,毫無用處的東西。
龔敏敏的KlayGE引擎在某此升級時直接刪除了DX11以前的所有插件,只使用OpenGL來兼容XP, 可喜的是OpenGL 4.0沒有微軟那么霸道及商業化,可以為XP提供DX11級別的特性,這才是趨勢。