Lorsque vous créez le dispositif de Direct3D, vous fournir une liste des niveaux de fonctionnalité matérielle Direct3D avec votre application. Si le matériel ne prend en charge aucun de ces niveaux de fonctionnalité, la création du périphérique échoue.
Pour Direct3D 11, vous fournir D3D11CreateDevice
les niveaux de fonction pris en charge comme les 5e & paramètres 6e:
HRESULT D3D11CreateDevice(...
const D3D_FEATURE_LEVEL *pFeatureLevels,
UINT FeatureLevels,
...);
Si vous passez nullptr
/0, par défaut:
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 };
Pour Direct3D 12 , D3D12CreateDevice
prend le niveau de fonctionnalité Direct3D minimum que vous prenez en charge en tant que 2ème paramètre:
HRESULT WINAPI D3D12CreateDevice(...
D3D_FEATURE_LEVEL MinimumFeatureLevel,
...);
La plupart des applications utilisent D3D_FEATURE_LEVEL_11_0
comme minimum.
Direct3D 12 nécessite les pilotes Windows 10 et WDDM 2.0 qui le prennent en charge. Il n'y a pas de pilote de périphérique pour une carte vidéo inférieure au niveau de fonctionnalité 11.0 pour le moment.
Voir Direct3D Feature Levels
Anatomy of Direct3D 11 Create Device
Anatomy of Direct3D 12 Create Device