2016-10-25 2 views
0

Quelqu'un peut-il m'expliquer, que se passera-t-il, si quelqu'un essaie d'utiliser d3d_feautre_level supérieur à celui pris en charge par Users GPU?D3D Numéro de fonctionnalité numéro

C'est ce que je ne comprends pas donc je vous serais reconnaissant, si quelqu'un pouvait me aider avec cette question

Répondre

1

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