Partager via


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 versions ultérieures.

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 à l’état de fusion. Le runtime définit ce membre sur TRUE si les opérations logiques sont disponibles à l’état de fusion et FALSE dans le cas contraire. Ce membre est FALSE pour les niveaux de fonctionnalité 9.1, 9.2 et 9.3. Ce membre est facultatif pour les niveaux de fonctionnalité 10, 10.1 et 11. Ce membre a la valeur TRUE pour le niveau de fonctionnalité 11.1.

UAVOnlyRenderingForcedSampleCount

Spécifie si le pilote peut effectuer un rendu sans affichage cible de rendu (RTV) ou de vues de gabarit de profondeur (DSV), et uniquement avec des vues d’accès non ordonnées (UAV) liées. Le runtime définit ce membre sur TRUE si le pilote peut effectuer un rendu sans VT ou DSV et que seuls les UAV sont liés et FALSE dans le cas contraire. Si la valeur est TRUE, vous pouvez définir le membre ForcedSampleCount de D3D11_RASTERIZER_DESC1 sur 1, 4 ou 8 lorsque vous effectuez un rendu sans VT ou DSV et que seuls les UAV sont liés. Pour le niveau de fonctionnalité 11.1, ce membre a toujours la valeur 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 que 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 dans le cas contraire. 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 si elles 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 selon que ce membre a la valeur TRUE ou FALSE ; vous pouvez appeler ces méthodes chaque fois qu’il y a lieu.

FlagsForUpdateAndCopySeenByDriver

Spécifie si le pilote prend en charge une nouvelle sémantique 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 une nouvelle sémantique 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 dans le cas contraire. Si la valeur est FALSE, le runtime n’expose pas cette méthode au pilote, car le pilote ne la prend pas en charge.

Note Pour les niveaux de fonctionnalité 9.1, 9.2 et 9.3, ce membre est toujours TRUE , 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 dans le cas contraire. Si la valeur est FALSE, le runtime n’expose pas cette méthode au pilote, car le pilote ne la prend pas en charge.

Note Pour les niveaux de fonctionnalité 9.1, 9.2 et 9.3, ce membre est toujours TRUE , 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 dans le cas contraire. Si la valeur est FALSE, le runtime n’expose pas cette opération au pilote, car le pilote ne la prend pas en charge.

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

ConstantBufferOffsetting

Spécifie si le pilote prend en charge une nouvelle sémantique 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 l’autorisation de spécifier des décalages lorsque vous appelez de nouvelles méthodes telles que la méthode ID3D11DeviceContext1::VSSetConstantBuffers1 et FALSE dans le cas contraire. Si la valeur est FALSE, le runtime n’expose pas cette opération au pilote, car le pilote ne la prend pas en charge.

Note Pour les niveaux de fonctionnalité 9.1, 9.2 et 9.3, ce membre est toujours TRUE , 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 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 dans le cas contraire. Si la valeur est FALSE, le runtime échoue, car le pilote ne prend pas en charge l’opération.

Note Pour les niveaux de fonctionnalité 9.1, 9.2 et 9.3, ce membre est toujours TRUE , 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 dans le cas contraire. Si la valeur est FALSE, le runtime échoue, car le pilote ne prend pas en charge l’opération.

MultisampleRTVWithForcedSampleCountOne

Spécifie si le pilote prend en charge le rendu multiéchantillon lorsque vous effectuez un rendu avec des rtv liés. Si la valeur est TRUE, vous pouvez définir le membre ForcedSampleCount de D3D11_RASTERIZER_DESC1 sur 1 avec une limite RTV multiéchantillon. Le pilote peut prendre en charge cette option au niveau de fonctionnalité 10 et supérieur. Si la valeur est FALSE, la création de l’état de rasté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 dans 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 base du nuanceur à double précision. 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 échouera 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.

Remarques

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 dont tous les membres sont définis sur TRUE , à l’exception des éléments 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 :

  • UAV à chaque étape du nuanceur avec 64 emplacements de liaison UAV au lieu de 8.
  • La rastérisation indépendante de la cible, qui vous permet de définir le membre ForcedSampleCountd’D3D11_RASTERIZER_DESC1 sur 1, 4, 8 ou 16 et d’effectuer un rendu sur des rtV avec un seul exemple.
  • Le rendu de l’UAV uniquement avec le membre ForcedSampleCount de D3D11_RASTERIZER_DESC1 défini sur jusqu’à 16 (jusqu’à 8 pour le niveau de fonctionnalité 11).
Le runtime définit toujours les regroupements de membres suivants de manière identique. Autrement dit, toutes les valeurs d’un regroupement sont TRUE ou FALSE :
  • DiscardAPIsSeenByDriver 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