DirectX11(D3D11)はDirectX9ハードウェア上でも動きます。
そういう場合に、DirectX11とDirectX9ではどちらを選択すべきだろうか、と思ってちょっと比較をしてみようかと思います。
そういう場合に、DirectX11とDirectX9ではどちらを選択すべきだろうか、と思ってちょっと比較をしてみようかと思います。
■チェック環境
- RADEON HD 5450(DX11対応ハード)
- Geforce9600GT
- Geforce6800GT
サンプルプログラムとしてBasicHLSL11というSDK付属の物を使います。
これを実行してFPSの計測を行います。
チェックしてみる項目は以下の通り
- D3D11デバイスでD3D_FEATURE_LEVEL_11_0
- D3D11デバイスでD3D_FEATURE_LEVEL_10_0
- D3D11デバイスでD3D_FEATURE_LEVEL_9_3
- D3D9デバイス
■結果
それぞれの場合でFPSを計測すると以下のようになりました。
(解像度は800×600)
条件 | FPS値(5450) | FPS値(9800GT) | FPS値(GF6800) |
---|---|---|---|
D3D11+D3D_FEATURE_LEVEL_11_0 | 1170 | – | – |
D3D11+D3D_FEATURE_LEVEL_10_0 | – | 3625 | – |
D3D11+D3D_FEATURE_LEVEL_9_3 | 1220 | 4183 | 1604 |
D3D9 | 965 | 1367 | 1201 |
D3D9 vs D3D11では、圧倒的にD3D11の方が高速に動作しているようです。
そして貧弱なハードウェアだからか、レベルを落とした方が若干高速でした。
この結果を見ると、DX9とDX11(9_3レベル)を悩むならDX11のほうがよいと言えます。