structure D3D11_FEATURE_DATA_D3D11_OPTIONS (d3d11.h)

Décrit les options de fonctionnalité Direct3D 11.1 dans le pilote graphique actuel.

Notes

Cette structure est prise en charge par le runtime Direct3D 11.1, disponible sur les systèmes d’exploitation Windows 8 et ultérieurs.

Syntaxe

typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS {
  BOOL OutputMergerLogicOp;
  BOOL UAVOnlyRenderingForcedSampleCount;
  BOOL DiscardAPIsSeenByDriver;
  BOOL FlagsForUpdateAndCopySeenByDriver;
  BOOL ClearView;
  BOOL CopyWithOverlap;
  BOOL ConstantBufferPartialUpdate;
  BOOL ConstantBufferOffsetting;
  BOOL MapNoOverwriteOnDynamicConstantBuffer;
  BOOL MapNoOverwriteOnDynamicBufferSRV;
  BOOL MultisampleRTVWithForcedSampleCountOne;
  BOOL SAD4ShaderInstructions;
  BOOL ExtendedDoublesShaderInstructions;
  BOOL ExtendedResourceSharing;
} D3D11_FEATURE_DATA_D3D11_OPTIONS;

Membres

OutputMergerLogicOp

Spécifie si les opérations logiques sont disponibles dans l’état de fusion. Le runtime définit ce membre sur TRUE si les opérations logiques sont disponibles dans l’état de fusion et FALSE sinon. Ce membre est FALSE pour le niveau de fonctionnalité 9.1, 9.2 et 9.3. Ce membre est facultatif pour le niveau de fonctionnalité 10, 10.1 et 11. Ce membre est TRUE pour le niveau de fonctionnalité 11.1.

UAVOnlyRenderingForcedSampleCount

Spécifie si le pilote peut s’afficher sans affichage cible de rendu (RTVs) ou de vues de gabarit de profondeur (DSV) et uniquement des vues d’accès non ordonnées (UAVs). Le runtime définit ce membre sur TRUE si le pilote peut s’afficher sans rtVs ni DSV et uniquement les UAVs liés et FALSE sinon. Si true, vous pouvez définir le membre ForcedSampleCount de D3D11_RASTERIZER_DESC1 sur 1, 4 ou 8 lorsque vous effectuez un rendu sans rtVs ou DSV et uniquement des UAVs liés. Pour le niveau de fonctionnalité 11.1, ce membre est toujours TRUE et vous pouvez également définir ForcedSampleCount sur 16 en plus de 1, 4 ou 8. La valeur par défaut de ForcedSampleCount est 0, ce qui signifie la même que si la valeur est définie sur 1. Vous pouvez toujours définir ForcedSampleCount sur 0 ou 1 pour le rendu UAV uniquement indépendamment de la façon dont ce membre est défini.

DiscardAPIsSeenByDriver

Spécifie si le pilote prend en charge les méthodes ID3D11DeviceContext1::D iscardView et ID3D11DeviceContext1::D iscardResource . Le runtime définit ce membre sur TRUE si le pilote prend en charge ces méthodes et FALSE sinon. La façon dont ce membre est défini n’indique pas si le pilote utilise réellement ces méthodes ; autrement dit, le pilote peut ignorer ces méthodes s’ils ne sont pas utiles au matériel. Si la valeur est FALSE, le runtime n’expose pas ces méthodes au pilote, car le pilote ne les prend pas en charge. Vous pouvez surveiller ce membre pendant le développement pour exclure les pilotes hérités sur le matériel où ces méthodes auraient pu être utiles. Vous n’êtes pas obligé d’écrire des chemins de code distincts en fonction de la valeur TRUE ou FALSE de ce membre; vous pouvez appeler ces méthodes chaque fois qu’elle s’applique.

FlagsForUpdateAndCopySeenByDriver

Spécifie si le pilote prend en charge de nouvelles sémantiques pour la copie et la mise à jour exposées par les méthodes ID3D11DeviceContext1::CopySubresourceRegion1 et ID3D11DeviceContext1::UpdateSubresource1 . Le runtime définit ce membre sur TRUE si le pilote prend en charge de nouvelles sémantiques pour la copie et la mise à jour. Le runtime définit ce membre sur FALSE uniquement pour les pilotes hérités. Le runtime gère ce membre de la même façon que le membre DiscardAPIsSeenByDriver .

ClearView

Spécifie si le pilote prend en charge la méthode ID3D11DeviceContext1::ClearView . Le runtime définit ce membre sur TRUE si le pilote prend en charge cette méthode et FALSE sinon. Si la valeur EST FALSE, le runtime n’expose pas cette méthode au pilote, car le pilote ne le prend pas en charge.

Note Pour le niveau de fonctionnalité 9.1, 9.2 et 9.3, ce membre est toujours VRAI , car l’option est émulée par le runtime.
 

CopyWithOverlap

Spécifie si vous pouvez appeler ID3D11DeviceContext1::CopySubresourceRegion1 avec des rectangles source et de destination qui se chevauchent. Le runtime définit ce membre sur TRUE si vous pouvez appeler CopySubresourceRegion1 avec des rectangles source et de destination qui se chevauchent et FALSE sinon. Si la valeur EST FALSE, le runtime n’expose pas cette méthode au pilote, car le pilote ne le prend pas en charge.

Note Pour le niveau de fonctionnalité 9.1, 9.2 et 9.3, ce membre est toujours VRAI , car les pilotes prennent déjà en charge l’option pour ces niveaux de fonctionnalités.
 

ConstantBufferPartialUpdate

Spécifie si le pilote prend en charge les mises à jour partielles des mémoires tampons constantes. Le runtime définit ce membre sur TRUE si le pilote prend en charge les mises à jour partielles des mémoires tampons constantes et FALSE sinon. Si la valeur EST FALSE, le runtime n’expose pas cette opération au pilote, car le pilote ne le prend pas en charge.

Note Pour le niveau de fonctionnalité 9.1, 9.2 et 9.3, ce membre est toujours VRAI , car l’option est émulée par le runtime.
 

ConstantBufferOffsetting

Spécifie si le pilote prend en charge de nouvelles sémantiques pour définir des décalages dans des mémoires tampons constantes pour un nuanceur. Le runtime définit ce membre sur TRUE si le pilote prend en charge la spécification de décalages lorsque vous appelez de nouvelles méthodes comme la méthode ID3D11DeviceContext1::VSSetConstantBuffers1 et FALSE sinon. Si la valeur EST FALSE, le runtime n’expose pas cette opération au pilote, car le pilote ne le prend pas en charge.

Note Pour le niveau de fonctionnalité 9.1, 9.2 et 9.3, ce membre est toujours VRAI , car l’option est émulée par le runtime.
 

MapNoOverwriteOnDynamicConstantBuffer

Spécifie si vous pouvez appeler ID3D11DeviceContext::Map avec D3D11_MAP_WRITE_NO_OVERWRITE sur une mémoire tampon de constante dynamique (autrement dit, si le pilote prend en charge cette opération). Le runtime définit ce membre sur TRUE si le pilote prend en charge cette opération et FALSE sinon. Si la valeur EST FALSE, le runtime échoue cette méthode, car le pilote ne prend pas en charge l’opération.

Note Pour le niveau de fonctionnalité 9.1, 9.2 et 9.3, ce membre est toujours VRAI , car l’option est émulée par le runtime.
 

MapNoOverwriteOnDynamicBufferSRV

Spécifie si vous pouvez appeler ID3D11DeviceContext::Map avec D3D11_MAP_WRITE_NO_OVERWRITE sur un SRV de mémoire tampon dynamique (autrement dit, si le pilote prend en charge cette opération). Le runtime définit ce membre sur TRUE si le pilote prend en charge cette opération et FALSE sinon. Si la valeur EST FALSE, le runtime échoue cette méthode, car le pilote ne prend pas en charge l’opération.

MultisampleRTVWithForcedSampleCountOne

Spécifie si le pilote prend en charge le rendu multisample lorsque vous effectuez un rendu avec des rtVs liés. Si true, vous pouvez définir le membre ForcedSampleCount de D3D11_RASTERIZER_DESC1 sur 1 avec une liaison RTV multisample. Le pilote peut prendre en charge cette option sur le niveau de fonctionnalité 10 et versions ultérieures. Si la valeur EST FALSE, la création de l’état de ratériseur échoue, car le pilote est hérité ou le niveau de fonctionnalité est trop faible.

SAD4ShaderInstructions

Spécifie si le matériel et le pilote prennent en charge la fonction intrinsèque msad4 dans les nuanceurs. Le runtime définit ce membre sur TRUE si le matériel et le pilote prennent en charge les appels aux fonctions intrinsèques msad4 dans les nuanceurs. Si la valeur est FALSE, le pilote est hérité ou le matériel ne prend pas en charge l’option ; le runtime échoue la création du nuanceur pour les nuanceurs qui utilisent msad4.

ExtendedDoublesShaderInstructions

Spécifie si le matériel et le pilote prennent en charge la fonction intrinsèque fma et d’autres instructions doubles étendues (DDIV et DRCP) dans les nuanceurs. La fonction intrinsèque fma émet une instruction DFMA double étendue. Le runtime définit ce membre sur TRUE si le matériel et le pilote prennent en charge des instructions doubles étendues dans les nuanceurs (modèle de nuanceur 5 et versions ultérieures). La prise en charge de cette option implique également la prise en charge des instructions de nuanceur double précision de base. Vous pouvez utiliser la valeur D3D11_FEATURE_DOUBLES pour interroger la prise en charge des nuanceurs double précision. Si la valeur est FALSE, le matériel et le pilote ne prennent pas en charge l’option ; le runtime échoue la création du nuanceur pour les nuanceurs qui utilisent des instructions doubles étendues.

ExtendedResourceSharing

Spécifie si le matériel et le pilote ont une prise en charge étendue des types et formats de ressources Texture2D partagés. Le runtime définit ce membre sur TRUE si le matériel et le pilote prennent en charge le partage de ressources Texture2D étendu.

Notes

Si un appareil Microsoft Direct3D prend en charge le niveau de fonctionnalité 11.1 (D3D_FEATURE_LEVEL_11_1), lorsque vous appelez ID3D11Device::CheckFeatureSupport avec D3D11_FEATURE_D3D11_OPTIONS, CheckFeatureSupport retourne un pointeur vers D3D11_FEATURE_DATA_D3D11_OPTIONS avec tous les membres définis sur TRUE , à l’exception de SAD4ShaderInstructions et ExtendedDoublesShaderInstructions membres, qui sont éventuellement pris en charge par le matériel et le pilote et peuvent donc être TRUE ou FALSE.

Le niveau de fonctionnalité 11.1 fournit les fonctionnalités supplémentaires suivantes :

  • UVS à chaque étape du nuanceur avec 64 emplacements de liaison UAV au lieu de 8.
  • Ratérisation indépendante de la cible, qui vous permet de définir le membre ForcedSampleCount de D3D11_RASTERIZER_DESC1 sur 1, 4, 8 ou 16 et de s’afficher sur rtVs avec un seul exemple.
  • Rendu UAV uniquement avec le membre ForcedSampleCount de D3D11_RASTERIZER_DESC1 configuré sur jusqu’à 16 (jusqu’à 8 pour le niveau de fonctionnalité 11).
Le runtime définit toujours les regroupements suivants de membres de manière identique. Autrement dit, toutes les valeurs d’un regroupement sont TRUE ou FALSE ensemble :
  • IgnorerAPIsSeenByDriver et FlagsForUpdateAndCopySeenByDriver
  • ClearView, CopyWithOverlap, ConstantBufferPartialUpdate, ConstantBufferOffsetting et MapNoOverwriteOnDynamicConstantBuffer
  • MapNoOverwriteOnDynamicBufferSRV et MultisampleRTVWithForcedSampleCountOne

Configuration requise

   
Client minimal pris en charge Windows 8 et Mise à jour de plateforme pour Windows 7 [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2012 et mise à jour de plateforme pour Windows Server 2008 R2 [applications de bureau | Applications UWP]
En-tête d3d11.h

Voir aussi

Structures principales

D3D11_FEATURE