2016-10-25 10 views
0

ユーザーGPUでサポートされているd3d_feautre_levelよりも高いd3d_feautre_levelを使用しようとすると、誰かに説明してもらえますか?D3D Feature Level issue

これは、私はあなたがDirect3Dデバイスを作成すると、誰かがこの質問

答えて

1

で私を助けることができれば、私は感謝理解しないものですが、あなたのアプリケーションがサポートするDirect3Dのハードウェア機能レベルのリストを提供します。ハードウェアがこれらの機能レベルをサポートしていない場合、デバイスの作成は失敗します。

HRESULT D3D11CreateDevice(... 
    const D3D_FEATURE_LEVEL *pFeatureLevels, 
    UINT FeatureLevels, 
    ...); 

あなたはnullptr/0を渡すと、そのデフォルトは次のように:

D3D_FEATURE_LEVEL lvl[] = { 
    D3D_FEATURE_LEVEL_11_0, 
    D3D_FEATURE_LEVEL_10_1, D3D_FEATURE_LEVEL_10_0, 
    D3D_FEATURE_LEVEL_9_3, D3D_FEATURE_LEVEL_9_2, D3D_FEATURE_LEVEL_9_1 }; 

用のDirect3D 12

は、Direct3Dの11のために、あなたは第五&第六パラメータとしてD3D11CreateDeviceサポートされる機能のレベルを提供しますD3D12CreateDeviceは、2番目のパラメータとしてサポートしているDirect3Dフィーチャレベルの最小値をとります:

HRESULT WINAPI D3D12CreateDevice(... 
    D3D_FEATURE_LEVEL MinimumFeatureLevel, 
    ...); 

ほとんどのアプリケーションでは、最小値としてD3D_FEATURE_LEVEL_11_0が使用されています。

Direct3D 12には、Windows 10とそれをサポートするWDDM 2.0ドライバの両方が必要です。現在、Feature Level 11.0より低いビデオカード用のデバイスドライバはありません。

Direct3D Feature Levels
Anatomy of Direct3D 11 Create Device
Anatomy of Direct3D 12 Create Device

を参照してください。